如何从java中将数据保存到记事本中

时间:2017-05-31 03:01:52

标签: java file filewriter printwriter bufferedwriter

大家好我试图在记事本中保存数据,但我不知道如何保存很多行。使用此代码,我可以保存一次数据。

# 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");
    }
}

2 个答案:

答案 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堆空间错误。