java IO流(一)----读写文件
IO体系:
输入/输出流体系
?
分类
字节输入流
字节输出流
字符输入流
字符输出流
抽象基类
InputStream
OutputStream
Reader
Writer
访问文件
FileInputStream
FileOutputStream
FileReader
FileWriter
访问数组
ByteArrayInputStream
ByteArrayOutputStream
CharArrayReader
CharArrayWriter
访问管道
PipedInputStream
PipedOutputStream
PipedReader
PipedWriter
访问字符串
?
?
StringReader
StringWriter
缓冲流
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
转换流
?
?
InputStreamReader
OutputStreamWriter
对象流
ObjectInputStream
ObjectOutputStream
?
?
抽象基类
FilterInputStream
FilterOutputStream
FilterReader
FileWriter
打印流
?
PrintStream
?
?
推回输入流
PushbackInputStream
?
PushbackReader
?
特殊流
DataInputStream
DataOutputStream
?
?
流的单向性:?
? ?输入流:只能从中读取数据,不能写入数据
? ?输出流:只能从中写入数据,不能从中读取数据
读写文件的主要是用到FileInputStream和FileOutputStream,他们分别是继承了,InputStream和OutputStream,下面就写一个读取文件以及写入数据到一个文件的例子。
?
package com.io;import java.io.*;public class MyIO { public static void main(String[] args) {//读取文件int b = 0;FileInputStream in = null;try{in = new FileInputStream("D://java//ThrowsDemo.java");}catch (FileNotFoundException e) {System.out.println("找不到指定文件");System.exit(-1);}try{long num = 0;while((b=in.read())!=-1) {System.out.print((char)b);num++;}in.close();System.out.println();System.out.println("共读取了"+num+"个字节");}catch (IOException e1) {System.out.println("文件读取出错");System.exit(-1);}//写文件int b1 = 0;FileInputStream in1 = null;FileOutputStream out = null; try{in1 = new FileInputStream("D://java//ThrowsDemo.java");out = new FileOutputStream("D://java//Throw.java");while((b1=in1.read())!=-1) {out.write(b1);}in1.close();out.close();}catch (FileNotFoundException e2) {System.out.println("找不到指定文件");System.exit(-1);}catch(IOException e1) {System.out.println("文件复制出错");System.exit(-1);}System.out.println("文件已复制");}}?基本的文件操作就是这样,总的来说就是输入输出流。而输入、输出流可分为字节流和字符流两大类,下面继续详说。