java中如何用io流删除一个文本中的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何用io流删除一个文本中的数据?相关的知识,希望对你有一定的参考价值。

既然是想要删除文本中的所有数据,那就没有必要去删除了,因为还要判断一些乱七八糟的东西比较麻烦,直接调用新建的方法即可,新建的同时会删除掉原来的,这时你只需要将新建的文本文件写入空字符串就好了,代码如下:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

File f = new File("C:/abc.txt");

FileWriter fw = null;
try
fw = new FileWriter(f);
fw.write("");
fw.close();
catch (IOException e)
e.printStackTrace();
参考技术A File file = new File("文件");
if(file.exists())
file.delete();
try
file.createNewFile();
catch (IOException e)
e.printStackTrace();

参考技术B 最简单的方法,删除文件,然后新建一个空的 参考技术C 输入流采用覆盖的方式 输入空字符串 参考技术D 首先用流打开文件
然后更改内容
再覆盖存储

JAVA 在GUI中的文本框输入数据 保存到vector 对象中,在程序退出(按右上角的红叉)通过对象流把

vector对象保存到文件中,下次再启动程序读取文件中数据到vector对象,要怎样实现求一个简单例子,(我会对象流的,但保存不对,下次读取时 vector里什么都没有)

写个vector保存和读取的例子,供参考

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Vector;
 
public class outStream 
    static Vector<String> v = new Vector<String>();
    static File fdata = new File("data");
    public static void main(String[] args) 
        boolean flag = false;
        if(flag)
            for(int i = 0; i < 10; i++)
                v.add("name" + i); 
            
            saveVector();
        
         
        if (!flag)
            readVector();
        
    
    private static void saveVector() 
        try 
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fdata));
            oos.writeObject(v);
            oos.close();
         catch (Exception e) 
            e.printStackTrace();
        
    
    private static void readVector() 
        try 
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fdata));
            v = (Vector<String>) ois.readObject();
            ois.close();
            for (String e : v) 
                System.out.println(e);
            
         catch (Exception e) 
            e.printStackTrace();
        
    

追问

我会对象流 - - 只是 程序退出 保存文件 再次启动程序 读取 数据到vector 这里 出问题

追答

我程序里写了两个方法啊,一个是程序启动的时候保存vector,一个是读取vector

追问

要在 windowscloseing这 重写 关闭 方法 退出程序 保存 然后启动程序 读取。。

追答

那就移植过去啊,在swing关闭时调用sava,在构造函数里读取,有难度么?

参考技术A 文件里没有数据的原因:
程序异常退出,也就是IO流没有正常结束,真正的数据还没有物理写入文件中。你需要在流close前,调用flush()方法,强制同步一下。
fileoutputstream out= new ……;
out.write(xxxx);
out.flush();
out.close();

以上是关于java中如何用io流删除一个文本中的数据?的主要内容,如果未能解决你的问题,请参考以下文章

java对文本文件进行操作:读取修改添加删除重命名等

Java 如何使用输入流和输出流 将txt文件中的某一行数据删除?

Java中如何用I/O流读取一个Word文档的内容

在前台页面中如何用正则表达式判断文本框中

JavaScript中如何用append方法插入一个元素?

JAVA 在GUI中的文本框输入数据 保存到vector 对象中,在程序退出(按右上角的红叉)通过对象流把