如何附加到文本文件而不是用Java覆盖它?
我试图用Java在文本文件中添加一行。 当我运行我的程序时,我的意思是添加一个简单的行,但我的程序是在写入新数据之前删除文本文件中的所有旧数据。
这是代码:
FileWriter fw = null; PrintWriter pw = null; try { fw = new FileWriter("output.txt"); pw = new PrintWriter(fw); pw.write("testing line \n"); pw.close(); fw.close(); } catch (IOException ex) { Logger.getLogger(FileAccessView.class.getName()).log(Level.SEVERE, null, ex); }
改变这个:
fw = new FileWriter("output.txt");
至
fw = new FileWriter("output.txt", true);
有关详细信息,请参阅javadoc – 实际上“append”默认为false。
请注意, FileWriter
通常不是一个很好的类 – 我更喜欢使用包装在OutputStreamWriter
FileOutputStream
,因为它允许您指定要使用的字符编码,而不是使用您的操作系统默认值。
改变这个:
fw = new FileWriter("output.txt");
对此:
fw = new FileWriter("output.txt", true);
FileWriter
的构造函数的第二个参数是你是否要追加到你打开的文件。 这会导致文件指针在写入之前移动到文件的末尾。
使用
fw = new FileWriter("output.txt", true);
来自JavaDoc :
给定File对象的构造FileWriter对象。 如果第二个参数为true,则字节将写入文件的末尾而不是开头。
两种选择:
- 困难的方法:读取整个文件,然后将其写出来并加上新数据。
- 简单方法:在“追加”模式下打开文件:
new FileWriter( path, true );
- spark java:如何处理multipart / form-data输入?
- 如何使用openCV或OCR tesseract从图像中提取文本?
- 什么方法隐藏实际使用?
- java中的`InputStream“DataInputStream`和`BufferedInputStream`的区别?
- “你好,世界!” – 无法找到或加载主类
- 如何从联系中获取手机号码
- 如何在JBoss中配置SQL Server数据源以使用特定的Active Directory用户进行连接?
- 使用android.content.Context.checkPermission检查权限时出现空指针exception
- 如何以编程方式获取Camera RAW元数据信息Android