比如我用输入流在一个地方读取了数据,怎样把这个数据通过输出流写到别的地方?
如果我是读写文件,那么之间是用string对象作为中介吗?
如果读写图片呢?
求详解!希望又例子~reader转成writer还有inputstream转成outputstream最好都要哦~

解决方案 »

  1.   

    InputStreamReader和OutputStreamWriter是字符流转向字节流的桥梁,具体见API!
      

  2.   

    "视频啊、图像啊、音频啊" 这些都是基于二进制的流, 不能用writer, 因为writer是面向字符的流, 你需要使用DataInputStream 与 DataOutputStream 进行读入与写出操作
    注意 DataInputStream 与 DataOutputStream 一定要成对使用
    代码大致上是这个样子: 
    DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(文件路径)));
    byte[] bs = new byte[in.available()];
    in.read(bs);
    in.close();DataOutputStream os = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(文件输出路径)));
    os.write(bs);
    os.flush();
    os.close();
      

  3.   

    桥梁就是数组,因为你读取大文件的时候 基本上都是通过读取文件的字节,然后一般会有个byte的数组,进行转储。一般的流程就是将文件读入到数组,然后再将数组中的内容读出。
      

  4.   

    一般的用BufferedInputStream和BufferedOutputStream来实现   因为图片用字节来 
       
      

  5.   

    你可能对于文件的组成理解有点乱,
    文件由文本文件和非文本文件之分
    1:文本文件 
       是指直接用记事本打开就可以看的那种
    2:非文本文件
       是指比如视频,音频,图片之类的java中IO就是处理文件读和写,简单点理解
    因为文件有2种类型,
    所以读写就需要区别对待凡是stream结尾的都可以读所有类型的文件
    凡是read结尾的只能读文本类型的文件io流所有的父类是2个:
    inputstream 和 outputstream其他所有的流都是在这个基础上包装起来的你说的reader 转writer 之类的是不可能的,读就是读,writer就是writer
    除非用NIO的缓冲区