第十周课程总结

package Demo1;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class pluto{
    public static void main(String[] args) throws Exception{                         
        File f=new File("d:"+File.separator+"test.txt");             
        OutputStream out=null;                      
        out=new FileOutputStream(f);           
        String str="hellojava";                           
        byte b[]=str.getBytes();                       
        for(int i=0;i<b.length;i++) {
            if(i%2==0) {            
                out.write((byte) (b[i]-32)); 
            }
            else {
                out.write(b[i]);
            }
        }
        out.close();
    }

}

 实验结果:

 

实验总结:

 1、字节流

  所有的读操作都继承自一个公共超类java.io.InputStream类。

  所有的写操作都继承自一个公共超类java.io.OutputStream类。

  InputStream和OutputStream都是抽象类。

    中文处理使用字符流。

 字节流与字符流区别:

首先必须要明确一点,通过任何终端(网络、文件)读取或者输出的数据都一定是字节,但是字符是经过内存处理后的数据。

字符输入:字节(磁盘)–> 自动转换为 –>字符(内存);
字符输出:字符(内存)–> 自动转换为–>字节(磁盘);
在利用字符流输出的时候,所有的内容实际上都只是输出到了缓冲区中(内存)。在使用close()方法关闭的时候会将我们缓冲区的数据进行输出,如果没有关闭,那么就将无法进行输出,此时可以利用flush()方法进行强制的输出。

字符使用到了缓冲区,而字节流没有使用到缓冲区。

如果处理中文使用字符流,其他的任何数据都使用字节流。

 

posted @ 2019-11-03 20:57  入江直树  阅读(79)  评论(0编辑  收藏  举报