IO流

读得懂的是字符流,读不懂的是字节流

字节流是万能的流,不知道使用那种流就可以使用字节流

        //创建输出流
        //FileOutputStream fi = new FileOutputStream("F:\\SE\\dim.txt");
        
        
        //创建字节输入流对象
        FileInputStream fo = new FileInputStream("F:\\SE\\dim.txt");

        //一次读一个字节
        /*
         * 将读到的值赋给by判断是否还有值
         */
        int by;
        while((by = fo.read()) != -1) {
            System.out.println((char)by);
        }
        
//		fi.close();
        fo.close();
//创建输出流
        FileOutputStream fi = new FileOutputStream("F:\\SE\\di.txt");
        
        
        //创建字节输入流对象
        FileInputStream fo = new FileInputStream("F:\\SE\\dim.txt");

        //一次读一个字节
        /*
         * 将读到的值赋给by判断是否还有值
         */
        
        //一次读一个字节数组,并实现复制文章
        byte[] arr = new byte[1024];
        int len;
        while((len = fo.read()) != - 1) {
           fi.write(arr,0,len);
        }
        
       
        fi.close();
        fo.close();

字节缓冲流:

//获取输出流
    BufferedOutputStream bf = new BufferedOutputStream(new FileOutputStream("F:\\SE\\im.txt"));
    
    //获取输入流
    BufferedInputStream bi  = new BufferedInputStream(new FileInputStream("F:\\SE\\dim.txt"));
    
    byte[] aa = new byte[1024];
    int len;
    while((len = bi.read()) != - 1) {
        bf.write(aa,0,len);
    }
    
    
    bf.close();
    bi.close();

字符流:

一个汉字存储如果是GBK编码占2个字节

如果是UTF-8编码占3个字节

编码与解码:

         String s = "你好";
//编码,按照的是平台默认的UTF-8编码
//byte[] arr = s.getBytes();	
//System.out.println(Arrays.toString(arr));	//[-28, -67, -96, -27, -91, -67]

byte[] arr = s.getBytes("utf-8");
//System.out.println(Arrays.toString(arr)); //[-60, -29, -70, -61]
    
//解码

//使用平台默认字符集解码
String s1 = new String(arr);
System.out.println(s1);

//按照指定编码解码
String s2= new String(arr,"utf-8");
System.out.println(s2);

字符流中的编码与解码:

OutputStreamWriter of = new OutputStreamWriter(new FileOutputStream("F:\\SE\\dim.txt"));
InputStreamReader f = new InputStreamReader(new FileInputStream("F:\\SE\\im.txt"));
int len;
char[] by = new char[1024];
while((len = f.read()) != -1) {
    of.write(len);
    
}
of.close();
f.close();

您可能还喜欢...