Reader

  FileReader

  BufferedReader

 package file;

 import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays; public class Demo7 {
public static void main(String[] args) throws IOException {
readTest1();
} public static void readTest1() throws IOException {
File file = new File("F:\\2.txt");
FileReader fileReader = new FileReader(file);
//建立缓冲输入字符流
BufferedReader bufferedReader = new BufferedReader(fileReader);
//读取数据
// int content = bufferedReader.read();
// System.out.println((char)content);
String line = null;
while((line = bufferedReader.readLine()) != null) { //一次读取一行,读到文件末尾null ,每次读取的不包含\r\n的
System.out.println(line);
// System.out.println(Arrays.toString(line.getBytes()));
// System.out.println(Arrays.toString("aa\r\n".getBytes())); //包含换行。
}
//关闭资源
bufferedReader.close();
}
}

自己实现readLine方法,默认的是每次读取一行,但不包括\r\n。自己实现一个包括的

 package file;

 import java.io.File;
import java.io.FileReader;
import java.io.IOException; public class Demo8 {
public static void main(String[] args) throws IOException {
File file = new File("F:\\2.txt");
FileReader fileReader = new FileReader(file);
String line = null;
while(!(line = myReadLine(fileReader)).equals("")) {
System.out.println(line);
}
} //自己实现ReadLine
public static String myReadLine(FileReader fileReader) throws IOException {
//创建一个字符串缓冲类对象
StringBuilder sb = new StringBuilder();
int content = 0;
while((content = fileReader.read()) != -1) {
if(content == '\r') {
continue;
}else if(content == '\n') {
break;
}else {
sb.append((char)content);
}
} // if(content == -1 ){
// return null;
// }
return sb.toString(); //如果没有了,返回的是"",不是null
}
}
05-06 07:14