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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘宁 中级黑马   /  2012-4-1 23:40  /  2401 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问一下在复制一个文件的时候,当没有明确文件是不是纯文本的时候,用字符流还是字节流?

或者说在客户端上传服务器的时候,当没有明确上传的对象是不是纯文本的时候,用字符流还是字节流?

6 个回复

倒序浏览
这个要看需求  存放在硬盘上的东西都是以字节码存在的   
  所以任何东西都可以用字节流操作了   至于什么时候需要用字符流  是看你想让它怎么显示  比如纯文本的  就是以字符串形式存在的
  这样我们可以阅读   再比如  图片  电影  mp3等  以字符串表现出来 对我们来说也没有意义   所以就不用转换流操作了  
   纯文本的东西也可以用字节流  就看你是想保存  还是想保存又便于阅读了  
回复 使用道具 举报
字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
所有的文件在硬盘或在传输时都是以字节的方式进行的,包括图片等都是按字节的方式存储的,而字符是只有在内存中才会形成,所以在开发中,能肯定是文本的信息用字符流,转换,操作起来方便除此之外用字节流
回复 使用道具 举报
字节流是最基本的,字符流是为了处理字符而提出来的。当用于处理文本数据时,选择字符流比字节流更好。
由于没有明确文件是不是纯文本的时候,为了保证程序运行不出现异常应该使用字节流
回复 使用道具 举报
    1、在所有的流操作里。字节永远是最基础的。任何基于字节的操作都是正确的。无论你是文本文件还是二进制的文件。

  2、如果确认流里面只有可打印的字符,包括英文的和各种国家的文字,也包括中文,那么可以考虑用字符流。

  3、字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。

     所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!

     如果是音频文件、图片、电影,就用字节流好点,

     如果是关系到中文(文本)的,用字符流好点.

   4、所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。

    在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.
回复 使用道具 举报
在客户端上传服务器的时候,当没有明确上传的对象是不是纯文本的时候,用字符流还是字节流?
字节流可以对所有二进制文件进行操作。通俗的说字符流相当于字节流加编码表。
如果操作文本文件,还可以使用InputStreamReader转换流
回复 使用道具 举报
..既然如此 你如果能用字符流去做吗 有这样的方法去吗 就算有不怕编码问题丢失数据吗、、、、
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马