小弟在做一个程序时遇到个问题,将文件内容读出并显示到屏幕上,同时复制文件内容到另一个文件中。
我的第一步是用户输入一个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("您已退出系统!");
}
}