「java文件写入覆盖」java的覆盖
本篇文章给大家谈谈java文件写入覆盖,以及java的覆盖对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 文件写入后如何覆盖之前的内容怎么办啊?
- 2、java 数据写入TXT文件中被覆盖的问题
- 3、java中用printWrite向文件中输入数据为什么会覆盖原来的数据,怎么解决呢
- 4、java给txt文件写入内容原内容被覆盖怎么办
- 5、java序列化两个对象写在一个里面会被覆盖吗
- 6、如何用java写入txt,每次运行都覆盖前一次的内容(多行数据)
java 文件写入后如何覆盖之前的内容怎么办啊?
解决方案
你的意思就是不覆盖之前的内容,追加写到文件里面 那就FileWriter a=new FileWriter("d:/as.txt");改成 FileWriter a=new FileWriter("d:/as.txt",true)
补充:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
java 数据写入TXT文件中被覆盖的问题
FileOutputStream 还有一个构造函数:
FileOutputStream (File file, boolean append)
JDK 文档中对此方法的说明:
“如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。”
即可解决你的问题。
改成:FileOutputStream fos = new FileOutputStream(file, true);
java中用printWrite向文件中输入数据为什么会覆盖原来的数据,怎么解决呢
PrintWriter()的作用是为了定义流输出的位置,之后设置是否追加输入为true,并且此流可以正常的存储中文,减少乱码输出。举例:
PrintWriter
out
=
new
PrintWriter("D:\\test.txt",true);//定义输出流位置,并且文件必须存在,设置为true表示追加内容
out.println("中文测试");//写入内容
out.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
java给txt文件写入内容原内容被覆盖怎么办
之前已经覆盖的是无法找回了,建议楼主下次可以采用FileOutputStream:
/**
* 追加文件:使用FileOutputStream,在构造FileOutputStream时,把第二个参数设为true 为追加内容
*
* @param fileName
* @param content
*/
public static void method1(String file, String conent) {
BufferedWriter out = null ;
try {
out = new BufferedWriter( new OutputStreamWriter(
new FileOutputStream(file, true )));
out.write(conent);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
或者使用字符流的
FileWriter(String fileName, boolean append)
构造一个FileWriter对象,第二个参数为给出一个带有布尔值的参数,表示是否追加写入的数据。
望采纳 谢谢!
java序列化两个对象写在一个里面会被覆盖吗
Java对象序列化文件追加对象的问题,以及Java的读取多个对象的问题解决方法。
这几天做一个小的聊天项目用到对象序列化的知识,发现对象序列化不能像普通文件一样直接追加对象。每次写入对象都会被覆盖。弄了2个多小时终于解决了。Java默认的对象序列化是每次写入对象都会写入一点头aced 0005(占4个字节),然后每次读取都读完头然后在读内容。解决方法就是先判断文件是否存在。如果不存在,就先创建文件。然后写了第一个对象,也写入了头aced 0005。追加的情况就是当判断文件存在时,把那个4个字节的头aced 0005截取掉,然后在把对象写入到文件。这样就实现了对象序列化的追加。代码如下:
首先我们要写一个对类,用于对象的序列化,这个类实现了Serializable接口。类的定义如下:

package qq.client.tools;
import java.io.*;
/**
* 这是对象序列化的程序
* 实现了对象序列化的追加
* @author Administrator
*
*/
public class ObjectOutputTest {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Message m = new Message();
m.setName("aaaaaaaaaaaaaaaaaaaaa");
File file=new File("D:\jjm.txt");
boolean isexist=false;//定义一个用来判断文件是否需要截掉头aced 0005的
if(file.exists()){ //文件是否存在
isexist=true;
FileOutputStream fo=new FileOutputStream(file,true);
ObjectOutputStream oos = new ObjectOutputStream(fo);
long pos=0;
if(isexist){
pos=fo.getChannel().position()-4;//追加的时候去掉头部aced 0005
fo.getChannel().truncate(pos);
}
oos.writeObject(m);//进行序列化
System.out.println("追加成功");
}else{//文件不存在
file.createNewFile();
FileOutputStream fo=new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fo);
oos.writeObject(m);//进行序列化
oos.close();
System.out.println("首次对象序列化成功!");
}
}
}
下面是反系列化的实现。注意要在循环外面关闭流,在里面关闭会出现句柄无效的错误。
package qq.client.tools;
import java.io.*;
public class ObjectInputTest {
/**这是反序列化的程序
* 实现从文件读取多个对象
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("D:"+File.separator+"jjm.txt");
if(file.exists()){
ObjectInputStream ois;
try {
FileInputStream fn=new FileInputStream(file);
ois = new ObjectInputStream(fn);
while(fn.available()0){//代表文件还有内容
Message p = (Message)ois.readObject();//从流中读取对象
System.out.println(p.getName());
}
ois.close();//注意在循环外面关闭
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
整个序列化对象的追加与从文件读取多个对象实就实现了
如何用java写入txt,每次运行都覆盖前一次的内容(多行数据)
Java使用FileWriter实现文件的写入,用法为:FileWriter(file,true); 其中第二个参数设置成false就是覆盖写入,true就是增量存储。举例代码:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class File01Demo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\a.txt");
FileWriter fw = new FileWriter(file,true); //设置成true就是追加
fw.write("asd");
fw.write("\r\n");
fw.write("ffd");
fw.close();
}
}
java文件写入覆盖的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java的覆盖、java文件写入覆盖的信息别忘了在本站进行查找喔。
发布于:2022-12-27,除非注明,否则均为
原创文章,转载请注明出处。