java里怎么将一个文件保存至另外一个文件里?

小弟在做一个程序时遇到个问题,将文件内容读出并显示到屏幕上,同时复制文件内容到另一个文件中。

我的第一步是用户输入一个txt文档的绝对路径然后再将它的内容在屏幕上显示出来。
这一段代码小弟敲完后可以运行并达到要求。

但是在第二个目标(将这个txt文档复制至新的路径里)遇到问题了,我不知道怎么
让程序可以读取用户刚刚输入的绝对路径再将其复制到一个新的目录里面,

我只能做到在程序里先打好复制文件的原路径与我想要将这个文件复制到哪个目录里

所以我的第一步和第二步脱节了,请大神们帮帮忙

package shiyan3;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.util.Scanner;

public class Notepad {
    private static String filePath;
    private static String message ="";
    public static void main(String[] args) throws Exception {
        Scanner sc =new Scanner(System.in);
        System.out.println("1:打开文件  2:复制文件 3:退出");
        while (true) {
            System.out.println("请输入指令");
            int command = sc.nextInt();
            switch (command) {
            case 1:
                openFile();
                break;
            case 2:
                copyFile();
                break;
            case 3:
                exit();
                break;
                default:
                    System.out.println("输入错误");
            }
        }
    }

    private static void openFile() throws Exception {
        message = "";
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入打开文件位置:");
        filePath =sc.next();
        if (filePath!= null && !filePath.endsWith(".txt")) {
            System.out.println("请选择文本文件!");
            return;
        }
        FileReader in = new FileReader(filePath);
        char [] charArray =new char[1024];
        int len =0 ;
        StringBuffer sb = new StringBuffer();
        while ((len=in.read(charArray)) !=-1) {
            sb.append(charArray);
        }
        message =sb.toString();
        System.out.println("打开文件内容"+"\r\n"+message);
        in.close(); 
    }
    public static void copyFile() throws Exception {
        FileReader reader =new FileReader("D://JAVA//chapter01//src//shiyan3//text.txt");
        BufferedReader br = new BufferedReader (reader);
        FileWriter writer = new FileWriter("D://JAVA//chapter01//src//shiyan3//text1.txt");
        BufferedWriter bw = new BufferedWriter(writer);
        String str;
        while ((str = br.readLine()) !=  null) {
            bw.write(str);
            bw.newLine();
        }
        br.close();
        bw.close();
   System.out.println("复制已经完成啦");

    }

    private static void exit() {
        System.out.println("您已退出系统!");
    }
}


1个回答

第一步由用户输入文件路径,那么就可以直接读取该文件的内容,然后写入到一个新文件的话,文件目录可以程序固定就可以了。
楼主说的第二步将用户输入的路径对应的文件拷贝到指定文件,应该用 openFile 一样接收一个 filePath 信息,那么 copyFile 的 Reader 就用用户输入的路径就可以了,这里你写固定了,是不妥当的。

aUgMan1
aUgMan1 谢谢回答,我已经成功解救问题了
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问