如何通过java实现对指定目录下的txt文件进行增删改查?

1.如何删除该txt文件内指定行所有字符?2.如何以关键字搜索txt文件内内容并输出该关键字所在那一行的所有字符?很急,在线等,感谢... 1.如何删除该txt文件内指定行所有字符?
2.如何以关键字搜索txt文件内内容并输出该关键字所在那一行的所有字符?
很急,在线等,感谢
展开
 我来答
yinfengnong
2018-03-21 · TA获得超过5619个赞
知道大有可为答主
回答量:2344
采纳率:89%
帮助的人:2297万
展开全部

代码如下:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

public class App61 {

public static void main(String[] args) throws IOException {

// 查找行输出
String line = findFileLine("mylist.txt", "abc");
System.out.println(line);

// 删除指定行
removeFileLine("mylist.txt", 2);
}

static void removeFileLine(String file, int line) throws IOException {

List<String> lines = readFileLines(file);

lines.remove(line - 1);

FileOutputStream outputStream = null;

OutputStreamWriter streamWriter = null;

BufferedWriter writer = null;

try {

outputStream = new FileOutputStream(file);

streamWriter = new OutputStreamWriter(outputStream);

writer = new BufferedWriter(streamWriter);

for (String str : lines) {
writer.write(str + System.lineSeparator());
}

} finally {
if (writer != null) {
writer.close();
}
if (streamWriter != null) {
streamWriter.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}


// 查找行
static String findFileLine(String file, String keywork) throws IOException {

List<String> lines = readFileLines(file);

for(String line : lines) {
if (line.contains(keywork)) {
return line;
}
}

return "";
}

// 返回文件所有行
static List<String> readFileLines(String file) throws IOException {

List<String> lines = new ArrayList<>();

FileInputStream inputStream = null;

InputStreamReader streamReader = null;

BufferedReader reader = null;

try {

inputStream = new FileInputStream(file);

streamReader = new InputStreamReader(inputStream);

reader = new BufferedReader(streamReader);

String line = "";

while ((line = reader.readLine()) != null) {
lines.add(line);
}
} finally {
if (reader != null) {
reader.close();
}
if (streamReader != null) {
streamReader.close();
}
if (inputStream != null) {
inputStream.close();
}
}

return lines;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式