「java文件写入覆盖」java的覆盖

博主:adminadmin 2022-12-27 03:48:09 61

本篇文章给大家谈谈java文件写入覆盖,以及java的覆盖对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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文件写入覆盖的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。