package com.test.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
/*
* 本功能就是从一个特定文件里一行一行读取内容,然后写入另外一个特定文件里面。
* 如果该特定文件里的某行中包含字符333,则不将此行写入另外一个文件中(相当于删除带333的行)
*/
public class FileAcessTest {
public static void main(String[] args) {
String dataLine;
String filePath = "C:\\";
String fromFileName = "abc.txt";
String toFileName = "abc1.txt";
// 定义欲读取文件的路径:此例为 → C:\abc.txt
String fromFile = filePath + fromFileName;
// 定义写入文件的路径:此例为 → C:\abc1.txt
String toFile = filePath + toFileName;
try {
// 创建文件读入流
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fromFile)));
// 创建文件写入流
BufferedWriter dos = new BufferedWriter(new FileWriter(toFile));
/*
* 这里一行一行的读取,如果文件的这一行不为空就进入循环做处理。
*/
while ((dataLine = br.readLine()) != null ) {
// 这里打印出读入这一行的文件数据内容。
System.out.println(dataLine);
// 判断这行是不是包含字符串333
while (!dataLine.contains("333")) {
// 如果不包括333的话,将这个写入到定义好的文件里,这个例子为 → C:\abc1.txt
dos.write(dataLine + "\r\n");
break;
}
}
// 读文件流关闭
br.close();
// 写文件流关闭
dos.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}