1、FileReader是用于读取字符流。 要读取原始字节流,请考虑使用FileInputStream 。 2、FileReader构造方法1、public FileReader(String fileName) throws FileNotFoundException 解释:创建一个新的 FileReader ,给定要读取的文件的名称。 参数:fileName - 要读取的文件的名称 异常:FileNotFoundException - 如果命名文件不存在,是一个目录,而不是常规文件,或者由于某些其他原因无法打开读取。 2、public FileReader(File file) throws FileNotFoundException 解释:创建一个新的 FileReader ,给定 File读取。 参数:file - 要阅读的 File 异常:FileNotFoundException - 如果文件不存在,是一个目录而不是常规文件,或者由于某些其他原因无法打开阅读。 3、常用方法1、public int read() throws IOException 读一个字符 该方法将阻塞,直到字符可用,发生I / O错误或达到流的结尾。 结果 :字符读取,作为0到65535( 0x00-0xffff )范围内的整数,如果已经达到流的末尾,则为-1。 2、public int read(char[] cbuf) throws IOException 将字符读入数组。 该方法将阻塞,直到某些输入可用,发生I / O错误或达到流的结尾。 参数 :cbuf - 目的缓冲区 结果: 读取的字符数,如果已经达到流的结尾,则为-1 4、将D盘的a.txt文件读取到程序中,并打印到控制台package pro1; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; public class $Test03 { public static void main(String[] args) throws Exception { //源目录 String sourcePath = "D:a.txt"; //初始化字符输入流 FileReader FileReader = null; //定义int类型变量resultData:用于接收read方法读取的字符值 int resultData = 0; try { //将字符输入流和sourcePath关联起来 FileReader = new FileReader(sourcePath); //循环读取FileReader字符输入流中字符,每次读取一个字符 while ((resultData = FileReader.read()) != -1) { System.out.print((char)resultData); } } catch (Exception e) { // TODO: handle exception }finally { FileReader.close(); } } } 第二种方法:通过字符数组读取:package pro1; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; public class $Test03 { public static void main(String[] args) throws Exception { //源目录 String sourcePath = "D:a.txt"; //初始化字符输入流 FileReader FileReader = null; //定义int类型变量resultlength:用于接收读取字符的长度 int resultlength = 0; //创建字符数组大小为2,字符输入流每次读取两个字符放入char数组中 char[] c = new char[2]; try { //将字符输入流和sourcePath关联起来 FileReader = new FileReader(sourcePath); //循环读取FileReader字符输入流中字符,每次读取一个字符 while ((resultlength = FileReader.read(c)) != -1) { System.out.print(new String(c , 0 , resultlength)); } } catch (Exception e) { // TODO: handle exception }finally { FileReader.close(); } } }