import java.io.*;
public class Liu5
{
    public static void main(String[] args)throws IOException 
    {
     File f1=new File("e:\\1.txt"); //创建两个File对象
        File f2=new File("e:\\2.txt");
        FileInputStream fis=new FileInputStream(f1); //创建FileInputStream对象
        FileOutputStream fos=new FileOutputStream(f2); //创建FileOutputStream对象
        byte[] b=new byte[(int)f1.length()];
        fis.read(b); //读取1文件
        for(int i=0;i<f1.length();i++)
        {
            fos.write(b[i]); //写入2文件
        }
        fis.close();
        fos.close();
    }
}
以上会出问题,会说1.txt文件找不到,只有创建了1.txt文件后才能运行,那我就纳闷为什么2.txt可以创建到,但1.txt却创建不了

解决方案 »

  1.   

     = = 。。汗。。你要从1.text中读取文本,找不到要去读取的文件当然会报异常了。。而你的2.txt因为是装文本的所以就算不存在。。也会帮你先创建好一个的。就算以前有2.txt存在也会被覆盖掉。。
      

  2.   

    就像你找水喝,,1.txt就是水源 而2.txt就是承水的容器。。
      

  3.   

    就像你找水喝,,1.txt就是水源 而2.txt就是承水的容器。
      

  4.   

    ???!!! 你要实现的功能是复制文件吧,那你认为你平实是怎么复制的?没有文件用来 Ctrl-C,能够 Ctrl-V 出一个文件吗?
      

  5.   

    java是这样规定的
    读文件必须要有文件
    但是写文件不用,如果文件已经存在,则会直接往文件中写
    如果文件不存在,会先建立文件,再往文件中写、、
      

  6.   

    FileInputStream fis=new FileInputStream(f1); //读文件,当然是只有有文件才能读啊
    FileOutputStream fos=new FileOutputStream(f2); //写文件,Java默认,当没有文件,执行写文件操作会自动创建
    其实C\C++也是这样的,读文件,文件必须存在。写文件,当文件不存在时自动创建
      

  7.   

    这不是什么java的问题,这是逻辑问题。
      

  8.   

    getRuntime().exec("cp D:\1.txt D:\2.txt");文件拷贝用底层OS命令就行了,java自己写输入输出流多累
      

  9.   

    windows 下是 copy
    linux 下是 cp
    windows 文件分隔符是 \
    linux 是 / 且没有所谓的盘符