下面是小弟写的一个复制txt文档的程序,可是出问题了,帮忙看看先!
package com.myself.copy;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class Copy {
// public void copyFile(){
public static void main(String[] s) {
int i=0;
try {
InputStreamReader in = new InputStreamReader(new FileInputStream(
"D:\\360data\\重要数据\\我的文档\\文档\\TXT\\123.txt"));
OutputStreamWriter out = new OutputStreamWriter(
new FileOutputStream("D:\\360data\\重要数据\\我的文档\\文档\\TXT\\副本123.txt"));
while ((i = in.read())!=-1) {
out.write(i);
System.out.println("i");
}
} catch (FileNotFoundException e) {
System.out.println("文件或者文件夹没有找到!");
e.printStackTrace();
} catch (IOException e) {
System.out.println("读写异常!");
e.printStackTrace();
}
}
}
最后运行的结果是这样的:
在文件夹里找到了副本123.txt,可是打开之后里面什么都没有(我的123.txt里面有几百个中文汉字),然后我在out.write(i)下面加了一句System.out.println("i");打印出来的全部是一个数字比如(1211 1469 65533 65533 1123 65533...)等等,这个是为什么啊?能解释一下吗?
随便问一下,哪里有i/o流操作的视频啊,我在这个地方纠结了半天,可还是对流有点不懂,希望大虾们能给出小弟一个答案!谢谢了先!

解决方案 »

  1.   

    在  out.write(i);后面加一句out.flush();
    你流还在缓冲区中,不刷新不会出来的!
    还有要记得out.close();关毕流,用完就不要占用资源了
    close();在关闭流之前会先刷新,所以不用flush()也是可以的
      

  2.   

    还有个问题忘了回答你了,read();方法的返回值是int 
     read()方法读取到的单个字符都会根据Unicode转成相应的int型数据,范围是0 到 65535 之间
      

  3.   

    流是二进制数据 要通过转化在可以输出,输出那些个数字很正常!new String("");引号中可以输出,通过强制转换的方式成为字符串
      

  4.   


    OutputStreamWriter out = new OutputStreamWriter(
    new FileOutputStream("D:\\360data\\重要数据\\我的文档\\文档\\TXT\\副本123.txt"),"utf-8");OutputStreamWriter写入时记的转码
      

  5.   

    while ((i = in.read())!=-1) {
    out.write(i);楼主只是为了写i而不是写内容?
      

  6.   

    建议看看孙鑫或者张孝祥的java基础视频
      

  7.   

    其实你把流想的简单一点,就是把数据发送到一个可存储的设备上或者读取设备上的数据。
    可存储的设备你可以想成:硬盘,管道,网络,内存中的字符串,数组等等,
    管道只是逻辑上的一个概念,不要深究,把他当做平常中的输油管道就行,输油管道不就是从A管道进,从B管道出,然后再进入C管道。
    我这里说的可存储可以是永久存储,可以是暂时存储如内存,可以是虚拟中的存储,如管道。
    数据:一个字符串,一张图片数据,程序中的对象,网络上发送的图片,声音,电影等等,都可以称为数据。
      

  8.   

    没关闭流题外话:
    LZ不要被JAVA的各种流吓到了,其实都一个模式