0

内部電話メモリにファイルを作成する次のコードがあります。

 File fileDir = getFilesDir();
    String filedir=fileDir.toString();
    String strNewFileName =  "information.csv";
    String strFileContents = (mes + "," + lat + "," + lng);

    File newFile = new File(fileDir, strNewFileName);
    try{


            boolean filestat = newFile.createNewFile();
            FileOutputStream fo =
            new FileOutputStream(newFile.getAbsolutePath());
            fo.write(strFileContents.getBytes());
            fo.close();
    }
    catch(IOException e) 
    {Log.v("TEST","Exception on create ");}

   System.out.print(OpenFileDialog("information.csv"));


}

そして、ファイルを読み取って印刷するための次のコードがあります。

public ArrayList<String> OpenFileDialog(String file){

    //Read file in Internal Storage
    FileInputStream fis;

    ArrayList<String> list = new ArrayList<String>();

    try {
    fis = openFileInput(file);
     String line = "string";
     BufferedReader buffreader = new BufferedReader(new InputStreamReader(fis));
    while (( line = buffreader.readLine()) != null) {

      list.add(line);
      System.out.println(list);
 }
         fis.close();


    } catch (FileNotFoundException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace(); 
    }
    return list;

  }

ただし、コードは、このアプリケーションの実行中に追加された 1 つの文字列を返すだけです。アプリケーションを複数回実行して、ファイルのすべての行を取得したいと考えています。コードが間違っていますか、それともアプリケーションを閉じた後にファイルが空になりますか?

4

1 に答える 1

0

私のコードは間違っていますか

毎回新しいファイルを作成しています。を使用して、モード パラメータを取るのバージョンをopenFileOutput()試してくださいMODE_APPEND

アプリケーションを閉じた後、ファイルは空になりますか?

いいえ、違います。

于 2013-06-30T17:39:13.527 に答える