IO流技术_总结

来源:互联网 发布:bodymovin插件 mac 编辑:程序博客网 时间:2024/06/09 15:04

需求:数据操作

     数据的传输:从一个硬盘到内存,从内存到硬盘;

                             从一台电脑到另一台电脑;(需要网络编程的UDP或TCP)

需求:

         1,写日记;

                            分析:从键盘到内存,从内存到硬盘 

                                       A, BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

                                       B,   BufferedWriter bw = new BufferedWriter(new FileWriter("d:"+File.separator+"MyDiary.txt"));

         2,拷贝日记;

                           分析:从硬盘到内存,从内存到硬盘

                                       A, BufferedReader br = new BufferedReader(new FileReader("d:"+File.separator+"MyDiary.txt"));

                                       B,   BufferedWriter bw = new BufferedWriter(new FileWriter("f:"+File.separator+"MyDiary.txt"));

         3,拷贝图片;

                          分析:

                                       A,BufferedInputStream

                                      B,BufferedOutputStream

总结:1,源和目的?System.in / System.out             Reader(file) / Writer(file)         InputStream(file) / OutputStream(file)

            2,是否缓冲?BufferedReader(Reader)  / BufferedOutputStream(OutputStream) 

            3,是否编码?字符才需要编码  FileReader(file)     InputStreamReader(file)

            4,是否需要转换流? InputStreamReader(System.in)  \ new InputStreamReader(System.in,"Utf-8")

 

凡是文本(字符)文件,都是从键盘录入,到内存,存入硬盘,取出硬盘,到内存,到屏幕;

每台电脑的系统都有默认的编码器和解码器——FileReader      FileWriter

如果需要用特定的解码器,就需要Reader的父类——public InputStreamReader(InputStream in,CharsetDecoder dec)

如果需要用特定的编码器,就需要Writer的父类——public OutputStreamWriter(OutputStream out,CharsetEncoder enc)

 

音频视频图片:非字符,不需要字符集编码器和解码器,只需要字节流:Stream ,InputStream,OutputStream

 

计算机数子:二进制,字节数组读取和写入,如class文件的加密和解密:ByteArrayInputStream

人类数字:十进制,十六进制,data,基本数据:DataArrayInputStream

字符:CharArrayReader

字符串:StringArrayReader


原创粉丝点击