【发布时间】:2019-08-18 19:27:25
【问题描述】:
编写一个读取文本文件并将内容写入新文件的 Java 程序。在读写过程中,将所有大写字母转换为小写字母。换句话说,您的编程任务是创建一个与原始文件内容相同的新文件,只是在新文件中将所有大写字母转换为小写字母
当我运行此代码时,无论它显示的文件名如何,它都不存在。我创建了一个名为input.txt 的文件,它应该将数据转换为所有小写字母。
import java.io.*;
import java.util.Scanner;
public class UpperCaseFileConverter
{
public static void main(String[] args) throws IOException
{
Scanner scanner = new Scanner(System.in);
String userFileName;
System.out.println( "Please enter file name. Please enter \"input.txt\" ");
userFileName = scanner.nextLine();
File file = new File(userFileName);
while(!file.exists() )
{
System.out.println( userFileName + " does not exist. Please try again.Please enter \"input.txt\" ");
userFileName = scanner.nextLine();
file = new File(userFileName);
}
Scanner fileToScan = new Scanner(file);
PrintWriter fileToWrite = new PrintWriter ("OUTPUT.TXT");
while(fileToScan.hasNext() )
{
fileToWrite.println( fileToScan.nextLine().toLowerCase() );
}
fileToWrite.close();
fileToScan.close();
}
}
输出应该创建一个新文件,但它只是一直说文件不存在。
【问题讨论】:
-
那么,文件在哪里?调试您的代码,通过获取其绝对路径并将其与文件的实际位置进行比较,检查
file的实际路径。 -
请注意
hasNext和nextLine之间不匹配。hasNext与next配对,hasNextLine与nextLine配对。 -
这段代码没有任何问题,这意味着它不会读取该文件 - 它按预期对我有用。您可能将文件放在错误的位置。 (执行
System.out.println(new File("").getAbsolutePath());以找到它期望的目录。) -
停止编辑问题。你问了这个问题,如果这解决了你的问题,请接受一个答案,但不要显着改变问题,否则模组会参与其中。
标签: java oop uppercase lowercase converters