我正在做一个需要获取文本文件(test.txt)并复制它并将其打印出来的程序。到目前为止,我只能打印出原始文件。我已经找到了这样做的方法,但似乎没有任何我能理解的帮助,我对java很新。我至少在寻找指导,而不仅仅是完整的答案。
我的代码到目前为止......
import java.io.*;
public class Copy{
public static void main(String [] args){
try{
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
File a = new File("test.txt");
FileReader fr = new FileReader(a);
File b = new File("Copied.txt");
FileWriter fw = new FileWriter(b);
while(true){
String line = br.readLine();
if(line != null){
System.out.println(line);
} else{
br.close();
break;
}
}
} catch(FileNotFoundException e){
System.out.println("Error: " + e.getMessage());
} catch(IOException e){
System.out.println("Error: " + e.getMessage());
}
}
}
因为我正在努力学习这一点,所以我会非常感激任何帮助。谢谢
答案 0 :(得分:1)
通常情况下,我建议使用Files.copy
只是因为它简单,但由于您需要同时“打印”内容,我们可以使用您的代码。
然而,首先,作为一般经验法则,如果你打开它,你应该关闭它。这可以确保您不会将资源打开,这可能会影响代码的其他部分。
有关详细信息,请参阅The try-with-resources Statement。
接下来,一旦您从源文件中读取了一行文本,您实际上需要将其写入目标文件,例如......
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter("Copied.txt"))) {
String text = null;
while ((text = br.readLine()) != null) {
System.out.println(text);
bw.write(text);
bw.newLine();
}
}
} catch (FileNotFoundException e) {
System.out.println("Error: " + e.getMessage());
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
答案 1 :(得分:0)
如果您使用的是Java 1.7或更高版本,则可以使用Files.copy()
File src = "your File";
File dest = "your copy target"
Files.copy(src.toPath(),dest.toPath());
答案 2 :(得分:0)
将FileWriter更改为PrintStream:
PrintStream fw = new PrintStream(b);
然后你应该能够使用:
写入该文件fw.println(line);