我只是想从一个文件中读取数据并将其写入另一个文件。但是每次我尝试使用ps.printf("%s", Filename);“ Filname ”打印数据时,它只会打印文件的实际名称而不是其中的数据。例子:输入文件名是visit.txt(由用户输入)输出文件名是report.txt(由用户输入)ps.printf("%s", Filename); 将单词“visit.txt”打印到report.txt而不是打印visit.txt中的数据PrintStream 是从文件中读取数据的错误类吗?import java.io.FileNotFoundException;import java.io.FileReader;import java.io.PrintStream;import java.util.Scanner;public class Veterinary {public static void main(String[] args) throws FileNotFoundException { String Filename; String Outputfilename; Scanner inputScanner = null; System.out.printf("Enter Your Input File Name: "); inputScanner = new Scanner(System.in); Filename = inputScanner.nextLine(); //CREATES FILE READER inputScanner = new Scanner(new FileReader(Filename)); System.out.printf("\n", Filename); System.out.printf("Enter Your Output File Name: "); PrintStream ps = null; inputScanner = new Scanner(System.in); Outputfilename = inputScanner.nextLine(); try { ps = new PrintStream(Outputfilename); } catch (Exception e) { System.out.println("ERROR. Could not open file!"); } ps.printf("%s", Filename); }}
3 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
创建文件阅读器后,使用
Scanner inputScannerfile = new Scanner(new FileReader(Filename));
线而不是
inputScanner = new Scanner(new FileReader(Filename));
在最后一行
ps.printf("%s", inputScannerfile.nextLine());
您的代码的问题在于您扫描了输入文件,但没有读取该文件,并且在最后一行中(ps.printf("%s",filename))
您将输入文件名传递给了.这就是为什么它为您提供输入文件名的原因。
婷婷同学_
TA贡献1844条经验 获得超8个赞
注释该行Outputfilename = inputScanner.nextLine();
,然后ps.printf("%s", Filename);
用以下内容替换 该行
while(inputScanner.hasNextLine()){ ps.println(inputScanner.nextLine()); }
什么错误,你是doning是你写Filename
的PrintStream的是你的文件名中的字符串值不it.since内容你已经打开了扫描仪输入文件,你需要从中读取每一行,并比其添加到输出文件的原流。以及我注释行的原因Outputfilename = inputScanner.nextLine()
;是因为它会从输入文件中读取第一行,然后转到下一行,但我们不会将其存储到打印流中,因此如果您不注释该行,则输入文件中的第一行将不会写入输出文件。
添加回答
举报
0/150
提交
取消