6

この単純なコードを使用して、「example.csv」というファイルにいくつかの文字列を書き込みますが、プログラムを実行するたびに、ファイル内の既存のデータが上書きされます。それにテキストを追加する方法はありますか?

void setup(){
  PrintWriter output = createWriter ("example.csv");
  output.println("a;b;c;this;that ");
  output.flush();
  output.close();

}
4

3 に答える 3

9
import java.io.BufferedWriter;
import java.io.FileWriter;

String outFilename = "out.txt";

void setup(){
  // Write some text to the file
  for(int i=0; i<10; i++){
    appendTextToFile(outFilename, "Text " + i);
  } 
}

/**
 * Appends text to the end of a text file located in the data directory, 
 * creates the file if it does not exist.
 * Can be used for big files with lots of rows, 
 * existing lines will not be rewritten
 */
void appendTextToFile(String filename, String text){
  File f = new File(dataPath(filename));
  if(!f.exists()){
    createFile(f);
  }
  try {
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(f, true)));
    out.println(text);
    out.close();
  }catch (IOException e){
      e.printStackTrace();
  }
}

/**
 * Creates a new file including all subfolders
 */
void createFile(File f){
  File parentDir = f.getParentFile();
  try{
    parentDir.mkdirs(); 
    f.createNewFile();
  }catch(Exception e){
    e.printStackTrace();
  }
}    
于 2013-06-09T19:03:00.297 に答える
-1

ファイルのデータを読み取り、それに新しいデータを追加し、追加されたデータをファイルに書き戻します。残念ながら、Processing にはファイル書き込み用の真の「追加」モードがありません。

于 2013-06-09T14:39:18.020 に答える