大家好我试图在记事本中保存数据,但我不知道如何保存很多行。使用此代码,我可以保存一次数据。
# The function reload will work well if you change the DATA
# and it will reload and return again the New value from data
我在escribir方法中尝试使用此代码但不起作用
package Vista;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class notepad_Data {
public void escribir(String nombreArchivo) {
File f;
f = new File("save_data");
try {
FileWriter w = new FileWriter(f);
BufferedWriter bw = new BufferedWriter(w);
PrintWriter wr = new PrintWriter(bw);
wr.append(nombreArchivo+" ");
bw.close();
} catch (IOException e) {
};
}
public static void main(String[] args){
notepad_Data obj = new notepad_Data();
obj.escribir("writing in the notepad");
}
}
答案 0 :(得分:1)
每次执行程序时,都会创建一个新的sava_data文件,用相同的名称替换以前的文件,因此不会添加新内容。
public class Notepad_Data {
public void escribir(String nombreArchivo) {
FileWriter fw = null;
try{
File f = new File("save_data");
fw = new FileWriter(f, true);
}catch(Exception e){
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(fw);
pw.println(nombreArchivo);
pw.flush();
try{
fw.flush();
pw.close();
fw.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
Notepad_Data obj = new Notepad_Data();
obj.escribir("writing in the notepad11");
}
}
答案 1 :(得分:0)
你应该把你的wr.append放在循环中使用arrayList.size作为你的条件,你在这里做的是你把整个块放在for循环中,这不是一个好主意,一个原因是你继续创建这3个类的对象:FileWriter,BufferedWriter和PrintWriter,这是一个潜在的java.lang.OutOfMemoryError:Java堆空间错误。