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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 如何使用输入流和输出流 将txt文件中的某一行数据删除?相关的知识,希望对你有一定的参考价值。

用一个关键字将拥有这一关键字的那一行删除(将文本中携带某一关键字的特定行删除)这是我课设(学生信息管理系统)的一部分,我准备用io流完成”删除学生信息“这一部分。附上监视器的一部分代码(做的窗口)
(注:F1是文本框)

按行读取文本,写入一个StringBuilder或StringBuffer对象中,循环写入时判断删除行时不写入,最后将拼接的字符串写入原文件即可,这里面需要注意存储字符串长度。追问

的确是用这个方法解决了问题,谢谢

的确是用这个方法解决了问题,谢谢

参考技术A 使用BufferReader行级读取,可以匹配精确的内容,也可以指定行号,实现将某一行删除追问

抱歉,是我的问题不够详细,我原本想问,如何用io流将txt文件中拥有某一关键字的特定一行删除,求解答,万分感谢。

追答

那就用FileReader字节流读取,这个是按字读取的,先用FileRedear行级遍历,将输出结果放在一个临时文件中,然后再用FileReader进行匹配关键字,找到此行的行号,然后重新读取,读取到此行时跳过这行,将输出结果放在临时文件中,输出完毕后删除原文件,将临时文件重命名为源文件名,实现删除操作
或者当匹配到这行时,使用FileWriter写入一个空值,不过这种方法我没试过,不确定行不行

JAVA——IO流-字符流和字节流

JAVA——IO流-字符流和字节流

一、IO流的概念

Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。
输入就是将文件中的内容读取到程序中
输出就是将程序中的内容写入到文件中

二、File类

方法说明
public boolean createNewFile()创建新文件
public boolean delete()删除文件
public boolean exists()判断文件是否存在
public boolean isDirectory()判断给定的路径是否是一个目录
public boolean isFile()判断给定的路径是否是一个文件
public long length()返回文件的大小,单位为字节, 如果文件不存在,则返回 0L
public String[] list()列出指定目录的全部内容,只是名称
public File[] listFiles()列出指定目录的全部文件的 File对象
public Boolean mkdir()创建一个目录,如果上级目录不存在则会报错
public Boolean mkdirs()创建一个目录,如果上级目录不存在则会递归创建
public String getName( )返回此对象表示的文件或目录的名称
String getPath( )返回此对象表示的文件的相对路径名
String getAbsolutePath( )返回此对象表示的文件的绝对路径名

三、字符流和字节流

1.区别

2.字节输入流

3.字节输出流

4.字符输入流

5.字符输出流

以上是关于Java 如何使用输入流和输出流 将txt文件中的某一行数据删除?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA——IO流-字符流和字节流

IO流

使用java的输入输出流将一个文本文件的内容按行读取,每读一行就顺序添加行号,并写入到另一个文件中

Java 流

Java中的字节输入出流和字符输入输出流

字符流和字节流