java io流小结

---------------------- android培训java培训、期待与您交流! ----------------------

 好长时间没有搞j2se的东西了 这段时间看了一下视频 好多都忘了 啊

java基础知识重新扫盲

package com.cn.io;

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FileOutputStreamDemo1 {
 
 public static void main(String[] args) throws Exception{
  //文件里没内容
  FileOutputStream fos = new FileOutputStream("1.text");
  fos.write(100);//这行执行结束后文件里尽然是‘d’这个字符
  /*
    这个2.txt文件中有一个汉字曹
    如果改成下列方式
   byte[]  bt = new byte[2];
   int  i = in.read(bt);
   System.out.println(new String(bt));//打印曹
   System.out.println(i);//打印2
   因为一个汉字占两个自己而没有指定缓冲区的read()方法一次只读一个字节
   而这时只读取了汉字的一个字节 可想而知一定会出现乱码现象
   而指定缓冲区大小同样出现另一个问题假如一个文件的汉字很多 打个比方有3个汉字
   但是我们指定缓冲区的大小是3这时也会出现乱码
   这个被分离单独字节因为无法识别就是一个?对应的accsii码 这就是为什么底下i打印的是178了
  */
  FileInputStream  in = new FileInputStream("2.text");
  int  i = in.read();
  System.out.println(i);//这个地方打印的是178假如我把2.txt文件中的汉字改为李 这行打印是192
  //但accsii表里根本没有192啊
  System.out.println((char)178);//这个地方打印的是?2.txt文件内容改了后这行还是打印?
 }

}

 

---------------------- android培训java培训、期待与您交流! ----------------------

你可能感兴趣的:(java io)