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培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值