InputStream类下:FileInputStream  ByteArrayInputStream  StringBufferInputStreamFilterInputStream(BufferedInputStream   DataInputStream)Reader类下:BufferedReader InputStreamRerader (FileReader)CharArrayReaderStringReader这么多类,我已经迷糊类的说明文档已看过,不过分不清。希望有高人来讲解一下。什么情况下用哪中类。
什么字节流 字符流的  感觉是一个东西啊  反正进到计算机里都是字节

解决方案 »

  1.   

    OK ..  你需要了解下.  Inputstream 跟  Reader的区别..一个是字节流  一个是字符流..你去写中文的话  一定要用 字符流..要不然会乱码..  英文无所谓.InputStream 前面加的那些修饰  对应了他们的用途..Data  写数据的.
    File  写文件的.
    ByteArray 写字节的.
    Buffered 一个带缓冲区的.
    Object 写对象的..楼主自己选择吧.. 很好用的.
      

  2.   

    字符数组跟字符串 肯定是有区别的..把字符串想成是你家..字符数组就是 分别把  你爸  你妈 还有你  三个..虽然说你们三个合起来还是你家..但是不是一个概念..要不然Java 的API 里面 也不会 出一个 toCharArray( )方法.
      

  3.   

    DATA 这个写数据  指什么啊int float double 等等?CharArrayReader 捕获字符数组?StringReader  捕获字符串?
    但我要输入个"abcdefg"的话  用哪个。。?
      

  4.   

    字节,字符在计算机存放都是字节,但在java里面字符和字节是有区别,分别是char类型和byte,在JAVA的JVM中分别占16位和8位,这就是区别了
    比如,文件中存的是字符,你在读取的时候,JVM会根据编码方式读取字符或字节,用inputstream就是读字节,比如一个“人”字,它根据编码方式,可以读成两个字节或三个字节,如果用reader来读,它会读成一个字符,因为它可以识别出‘虽然是几个字节,但它们是一起的,可以组成一个字符的’,所以就会有inputstream和reader了
    常用的场景,我要读文本文件,里面都是一些大伙认识的字符,特别是包含汉字这样的,把字节分节是没意义的,所以会希望一个字符一个字符地读,但对二进制文件来说,你读的话,更希望用字节来读,而不是字符,因为字符是没有意义的,不过一般的认为是reader可以兼容stream,而且像网络传输这种,只会识别byte的,而不懂16位的字符的,所以stream还是很有用,但你可以根据需要把一个stream封装成reader,去更方便地进行读写操作。字符数组就是一个array,没啥特别,string是一个类呀,它们和c++不一样,是几乎没啥关系的两个东东,所以字符数组用的地方不是很多,byte数组倒是挺多,经常可以与string互相转换。比如:
    String.getBytes();
    new String(bytesArray);