A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴超 金牌黑马   /  2012-6-10 22:45  /  2461 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴超 于 2012-6-12 01:31 编辑

字符和字节read区别:handshake

点评

哥,你都二十三分的人了,视频里说得一清二楚  发表于 2012-6-10 22:54

5 个回复

倒序浏览
童鞋,下次说问题的时候描述清楚..
字符流和字节流的区别是字符流一次可以读取一个字符比如可以读取一个汉字,而字节流一次只可以读取一个字节,比如一个2进制数或一个字母.
ps.  read方法里的参数有区别,区别是一个字符流,一个是字节流,比如字符流的read(char [c],int i;int length) 字节流的方法为read(byte []b,int i;int length)
回复 使用道具 举报
字节流读取时,是一个字节一个字节的读取,而字符流是一个字符一个字符读取,JAVA中默认使用Unicode编码,此编码一个字符占两个字节,所以字符流是两个字节两个字节的读取。
回复 使用道具 举报
字节流是读取的是字节,也就是机器存储时的源码,软件在计算机中存储的形式都是二进制,所以说,字节可以读取任何软件,而字符只是针对某个字,而且容易出现乱码,而字节流就不会。
回复 使用道具 举报
  1. import java.io.File;      
  2. import java.io.FileWriter;      
  3. import java.io.Writer;      
  4. public class Demo2 {      
  5.     public static void main(String[] args) throws Exception {
  6.         File f = new File("d:/test.txt");// 声明File 对象            
  7.         Writer out = null;//字符流对象                  
  8.         out = new FileWriter(f);
  9.         String str = "Hello World!!!";  
  10.         out.write(str);//将该字符串输出到文件中,此时没有关闭输出流   
  11.     }      
  12. }
复制代码
上面是字符流的代码,运行的结果是:
  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.OutputStream;

  4. public class Demo1 {
  5. public static void main(String[] args) throws Exception {
  6. File f = new File("d:/test2.txt"); // 声明File对象
  7. OutputStream out = null;//申明一个字节流对象
  8. out = new FileOutputStream(f);//实例化out
  9. String str = "Hello World!!!";// 准备一个字符串
  10. byte b[] = str.getBytes();// 字符串转byte数组
  11. out.write(b);// 将内容输出,此时没有关闭输出流
  12. }
  13. }
复制代码
这个是字节流的代码,运行的结果如下:

字符流程序运行后会发现文件中没有任何内容,这是因为字符流操作时使用了缓冲区,而 在关闭字符流时会强制性地将缓冲区中的内容进行输出,但是如果程序没有关闭,则缓冲区中的内容是无法输出的,所以得出结论:字符流使用了缓冲区,而字节流没有使用缓冲区
回复 使用道具 举报
其实没什么区别,字符流只能操作字符,字节流比较全能,什么都能干,字符流是杀鸡刀,字节流是杀牛刀,杀鸡焉用宰牛刀,是吧!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马