5

ファイルに書き込み、そこから読み取りたい。openFileOutput(..,..) メソッドを使用しているときに、このメソッドは抽象メソッドであるため定義されていません。次に、 getBaseContext(); を使用してコンテキストを渡して試しました。警告はオフでしたが、出力を読み取っても結果が得られません。また、コンストラクターでパラメーターとしてコンテキストを渡そうとしましたが、それも役に立ちませんでした。毎回クラスをインスタンス化する必要がないように静的メソッドを作成したいのですが、それなしでも試したので、静的が理由ではありません。コードのスニペットを以下に示します。

内部ストレージを使用している場合でもパスを指定する必要はありますか? 内部ストレージにファイルを書き込むために必要な権限はありますか? (外部ストレージへの書き込み権限を入れています)

public static void write (String filename,Context c,String string) throws IOException{
    try {
        FileOutputStream fos =  c.openFileOutput(filename, Context.MODE_PRIVATE);
        fos.write(string.getBytes());
        fos.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


public static String read (String filename,Context c) throws IOException{

    StringBuffer buffer = new StringBuffer();

    FileInputStream fis = c.openFileInput(filename);
    BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
    if (fis!=null) {                            
        while ((Read = reader.readLine()) != null) {    
            buffer.append(Read + "\n" );
        }               
    }       
    fis.close();
    return Read;
}
4

2 に答える 2

2

read メソッドで buffer.toString() を返すことで問題が解決しました。ありがとうステファン。

于 2012-10-03T06:49:59.593 に答える