IO流操作规律大总结:
1、明确体系:
源:
InputStream,Reader
目的:
OutputStream,Writer
2、明确数据:
源:是否是纯文本数据呢?
是:用Reader
否:用InputStream
目的:
是:用Writer
否:用OutputStream
3、明确设备:
源:
键盘录入:System.in
硬盘:FileReader,FileInputStream
内存:数组
网络:socket socket.getInputStream()
目的:
控制台:System.out
硬盘:FileWriter,FileOutputStream
内存:数组
网络:socket socket.getOutputStream()
4、明确额外功能:
需要转换:使用转换流,InputStreamReader,OutputStreamWriter
需要高效:使用缓冲区,BufferedXXX
5、
例:复制文件
import java.io.*;
class CopyTextByBuf
{
public static void main(String[] args)
{
BufferedReader bufr = null;
BufferedWriter bufw = null;
try
{
bufr = new BufferedReader(new FileReader("Demo.java"));
bufw = new BufferedWriter(new FileWriter("Demo_Copy.txt"));
String line = null;
while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
}
catch (IOException e)
{
throw new RuntimeException("读写失败");
}
finally
{
try
{
if(bufr!=null)
bufr.close();
}
catch (IOException e)
{
throw new RuntimeException("读取关闭失败");
}
try
{
if(bufw!=null)
bufw.close();
}
catch (IOException e)
{
throw new RuntimeException("写入关闭失败");
}
}
}
}