我一直在使用Java中的文件。我知道从文件读取和写入的基础知识。下面是我试写的代码
void qlm(String option,String initiate,String ii,String file_path,String source,List destination){ //,String paths,String src){
String [] Ln = {"B","C","D"};
int count =1, counter=1,seq=1;
try{
System.out.println("Here: " +file_path);
PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB()),true);
for(int i=0;i<Ln.length;i++){
pwr.println("Sequence_Number" + "|" + "QLM_Operation" + "|" + "II_D" + "|" + "Val_D" + "|" + "List" + "|" + "Type" + "|" + "Status" + "|" + "Source" + "|" + "Destination");
pwr.println(count + "|" + option + "|" + "DataK" + "|" + "Value" + "|" + Ln + "|" + "Null" + "|" + "Pending" + "|" + source + "|" + Ln[i]);
count++;
}
pwr.close();
getHandleB()是文件的路径。这是在方法 qlm(参数)
中执行的现在我想从另一个名为 handle(parameters)
的方法写入同一个文件(路径:getHandleB())此函数的输出应写入同一文件而不删除前一方法的内容。当我尝试写入文件时,它会删除以前的内容并写入新内容。我怎么能避免这种情况。我想要写出所有方法的所有内容。谢谢你的帮助。
答案 0 :(得分:2)
您没有附加到文件。使用允许追加的FileWriter构造函数,它具有boolean / true作为其第二个参数。
PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB(), true),true);
修改强>
在上面的代码中分离构造函数调用应该可以帮助您了解正在发生的事情:
FileWriter fileWriter = new FileWriter(getHandleB(), true);
PrintWriter pwr = new PrintWriter(fileWriter, true);
所以你看到是的,这里使用了两个布尔参数,但它们与不同的构造函数一起使用。
答案 1 :(得分:1)
您需要使用appropriate FileWriter
constructor和true
作为第二个参数。
默认情况下,FileWriter
会截断它打开的文件。