package com.io_.reader_;
import org.junit.Test;
import java.io.FileReader;
import java.io.IOException;
public class FileReader_ {
public static void main(String[] args) {
}
@Test
public void fileReader01() {
System.out.println("======read()读取 ============");
// FileReader 从story.txt 读取内容
//read() :(效率低)每次读取单个字符,返回该字符,如果到文件末尾,返回-1
//read(char[]) (效率高)批零读取多个字符到数组,返回读取的字符数,如果文件末尾,返回-1
//1. read()
//1. 定义需要读取的路径
String filePath = "e:\\story.txt";
//2. 创建流对象 new FileReader()
FileReader fileReader = null;
int readLen = 0;//定义返回的读取字符数
try {
fileReader = new FileReader(filePath);//捕获异常
//3. 读取内容
//read() :每次读取单个字符,返回该字符,如果到文件末尾,返回-1
//循环读取
while ((readLen = fileReader.read()) !=-1) {
System.out.print((char) readLen);// int强制转为char
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//4. 关闭文件流,释放资源
if (fileReader != null) {
try {
fileReader.close();//捕获异常
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Test
public void fileReader02() {
System.out.println("=========read(char[]) ========");
//read(char[]) 批零读取多个字符到数组,返回读取的字符数,如果文件末尾,返回-1
//2. read(char[])
String filePath2 = "e:\\story.txt";
FileReader fileReader2 = null;
char[] buf = new char[1024];
int readLen2 = 0;
try {
fileReader2 = new FileReader(filePath2);
while ((readLen2 = fileReader2.read(buf)) !=-1) {
System.out.print(new String(buf, 0, readLen2));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fileReader2 != null) {
try {
fileReader2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
Java零基础学java之IO流--08FileReader字符输入流
最新推荐文章于 2022-12-05 04:35:04 发布