一.什么是IO流
流源于UNIX中管道的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备,外部文件等。
IO流分为字节流和字符流
字符流包含:Reader 和 Writer
字节流包含:InputStream 和 OutputStream
三.什么是字节流,什么是字符流
字节流是由字节组成的,字节流是最基本的,所有的 Inputstream和Outputstream的子类都是字节流,主要用在处理二进数据,它是按字节来处理的。
字符流是由字符组成的,Java里字符由两个字节组成,所有的 Reader和 Writer的子类都是字符流,主要用在处理文本内容或特定字符。
四.字节流和字符流的区别
节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,
而字符流数据先放在缓冲区,通过缓冲区再操作文件。
读写时一个是按字节读写,一个是按字符。
需要对内容进行按行处理,一般选择字符流。
五.字符流和字节流常用类
六.实现文件复制的思路和步骤
步骤见代码
public class IO2 { public static void main(String[] args) { FileInputStream f1 = null; FileOutputStream f2 = null; ; try { f1 = new FileInputStream("D:\\lenove\\ss.txt"); f2 = new FileOutputStream("D:\\ss.txt"); int n = 0; do { try { n = f1.read(); f2.write(n); } catch (IOException e) { e.printStackTrace(); } } while (n != -1); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { f1.close(); } catch (IOException e) { e.printStackTrace(); } try { f2.close(); } catch (IOException e) { e.printStackTrace(); } finally { try { f1.close(); f2.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
文章来源: IO流