電子書籍の厳選無料作品が豊富!

このような関数を作って、mainの関数に渡したいのですが、文法がダメだとコンパイラに怒られます。
private String test(){
try{
FileOutputStream fos=openFileOutput("sample.txt", MODE_PRIVATE);
String text="サンプルテキストです";
fos.write(text.getBytes());
fos.close();
}catch(FileNotFoundException e){
}catch(IOException e){
}

try{
FileInputStream fis=openFileInput("sample.txt");
byte buffer[]=new byte[100];

fis.read(buffer);
String str = new String(buffer).trim();
fis.close();
return str;

}catch(FileNotFoundException e){
}catch(IOException e){
}
}なぜ返せないのでしょうか。

A 回答 (3件)

関数間での文字列の受け渡しはできませんので、ポインタを使用するかグローバル変数での受け渡しになります。



str buff(100);
main{
try;
}

とか
main{
srt buff(100);
buff = try;
}
みたいな形になると思いますよ。
    • good
    • 0
この回答へのお礼

なるほど、、、関数間での文字列の受け渡しができない(!?)ことがわかっただけでもありがたいです。
main関数の中でかっこつけないでやっていきます。

ありがとうございます!!!

お礼日時:2014/01/08 14:54

あと蛇足ですが、


> 文法がダメだとコンパイラに怒られます。
エラーメッセージを見れば問題箇所の特定が劇的に容易になります。
質問する際はエラーメッセージを必ず記載するようにしましょう。
    • good
    • 0
この回答へのお礼

そうしたかったのですが、、、コンパイルする以前に、「×と電球」が出てしまっていて、コンパイル時のエラー文も出ていない状態でした。
こういう場合、どうやってエラー文を出したらいいのでしょうか。

お礼日時:2014/01/08 14:57

値を返さないコードパスがありますね。



2つめのtry~catchで例外が発生したときの戻り値がありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
main関数に直書きで対処いたします。

お礼日時:2014/01/08 15:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!