好记性不如赖笔头…………
FileWriter在读取文件时,常用的方法有两种:
- 使用read()方法一次读取一个字符
- 使用read(char[] chs)方法一次读取一定数量的字符,相对来说,这种方法效率更高
package com.Ckinghan.ioDemo;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) {
/**
* 一个个读取字符
*/
fileReader();
System.out.println("--------------------------------------------------------------------我是分离线--------------------------------------------------------------------");
/**
* 一次读取指定数量的字符
*/
fileReader2();
}
/**
* @描述:一次读取指定数量的字符
* @创建时间:
*/
public static void fileReader2(){
FileReader fileReader = null;
try {
//创建FileReader对象
fileReader = new FileReader("JavaIOWriter.java");
int readDate = -1;
//使用read(char[] chars)一次读取指定长度的字符
char[] chars = new char[10];
//如果数据读取到最后没有数据了,就会返回-1,根据这个可以使用循环读取
while ((readDate = fileReader.read(chars)) != -1) {
System.out.print(new String(chars, 0,readDate));
}
//如果文件不存在,会抛出文件找不到异常
} catch (FileNotFoundException e) {
e.printStackTrace();
//当读取文件时,如果文件不存在或被占用,就会抛出IO异常
}catch (IOException e) {
e.printStackTrace();
}finally {
//如果fileReader不等于NULL,则关头流
if(fileReader != null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* @描述:一个个读取字符
* @创建时间:
*/
public static void fileReader(){
FileReader fileReader = null;
try {
//创建FileReader对象
fileReader = new FileReader("JavaIOWriter.java");
int readDate = 0;
//使用read()每次只能读取一个字符,并且会转换为ascii码返回
readDate = fileReader.read();
System.out.println("第一次读到的数据为:"+readDate+";转换字符为:"+(char)readDate);
//如果数据读取到最后没有数据了,就会返回-1,根据这个可以考虑使用循环读取
while ((readDate = fileReader.read()) != -1) {
System.out.print((char)readDate);
}
//如果文件不存在,会抛出文件找不到异常
} catch (FileNotFoundException e) {
e.printStackTrace();
//当读取文件时,如果文件不存在或被占用,就会抛出IO异常
}catch (IOException e) {
e.printStackTrace();
}finally {
//如果fileReader不等于NULL,则关头流
if(fileReader != null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}