【发布时间】:2014-03-06 20:19:53
【问题描述】:
我正在尝试编写一个文件,该文件将数据从一个用户输入的文件复制到另外两个单独的用户输入文件中,但是事情不正常并且没有任何内容被复制。我知道第一行正在被读取,因为我编辑了代码以检查并显示第一个文件中的任何内容是否正在读取(它是),但同样,没有任何内容正在复制。我正在从一本书中学习,如果我能得到任何帮助,我将不胜感激。非常感谢!
这是代码。
import java.util.Scanner;
import java.io.*;
import java.io.FileWriter;
public class FileIO
{
// This method writes data from a file to other files
public static void main(String[] args) throws IOException
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter input file name:");
String filename = keyboard.nextLine();
System.out.println();
System.out.println("Enter output file name:");
String filename2 = keyboard.nextLine();
System.out.println();
System.out.println("Enter another output file name (append) :");
String filename3 = keyboard.nextLine();
System.out.println();
PrintWriter outputFile = new PrintWriter(filename2);
FileWriter outputFile2 = new FileWriter(filename3, true);
PrintWriter outputfile2 = new PrintWriter(outputFile2);
File myfile = new File(filename);
Scanner inputFile = new Scanner(myfile);
while (inputFile.hasNext()){
String morelines = inputFile.nextLine();
outputFile.print(morelines);
outputfile2.print(morelines);
}
outputFile.close();
outputfile2.close();
inputFile.close();
}
}
【问题讨论】:
-
在两个输出文件上调用
flush()close()。 -
仅供参考,您有
outputFile2和outputfile2,这会造成不必要的混乱。我建议至少将outputfile2重命名为outputFile3,如果不将所有三个重命名为更具描述性的变量名称。
标签: java input copy output printwriter