抽象基类 | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream(字节输入 流) | Reader(字符输入流) |
输出流 | OutputStream(字节输出流) | Writer(字节输出流) |
抽象基类 | 文件流(节点流) | 缓冲流(处理流的一种) |
---|---|---|
InputStream | FileInputStream | BufferedInputStream |
OutputStream | FileOutputStream | BufferedOutputStream |
Writer | FileWriter | BufferedWriter |
Reader | FileReader | BufferedReader |
package priv.stream.java; import java.io.File; import java.io.FileReader; import java.io.IOException; public class FileReaderWriterTest { public static void main(String[] args) throws IOException { // 1.实例化File类的对象,指明要操作的文件 File file = new File("E:\\原D盘文件\\code\\java\\基础语法\\src\\priv\\stream\\java\\hello.txt"); System.out.println(file.getAbsoluteFile()); //2.提供具体的流 FileReader fr = new FileReader(file); //3.数据的读入 int data = fr.read(); while (data != -1) { System.out.print((char)data); data = fr.read(); } //3.数据的读入(简化) int data; while(( data = fr.read() )!=-1) { System.out.print((char)data); } fr.close(); } }
上面的异常是通过抛出来解决,下面是通过try-catch-finally来解决(快捷键Alt+Ctrl+T)
package priv.stream.java; import java.io.File; import java.io.FileReader; import java.io.IOException; public class FileReaderWriterTest { public static void main(String[] args) { FileReader fr = null; try { File file = new File("E:\\原D盘文件\\code\\java\\基础语法\\src\\priv\\stream\\java\\hello.txt"); System.out.println(file.getAbsoluteFile()); fr = new FileReader(file); int data ; while ((data = fr.read())!=-1) { System.out.print((char)data); } } catch (IOException e) { e.printStackTrace(); } finally { } try { if(fr!=null) fr.close(); } catch (IOException e) { e.printStackTrace(); } } }
说明:读入的文件一定要存在,否则就会报FileNotFoundException