我已经阅读了我的书以及我的老师使用 FileNotFoundException 之类的异常就读写方法主题制作的幻灯片。我已经编写了很多代码并让它工作,允许我向用户询问文件路径并读取此文件并将其显示在控制台上。我正在努力反转文件文本并将这个新文本输出到文件以保存/创建。我的书没有解释如何在同一个程序上同时执行读取和写入方法。所以我写的输出代码可能是非常错误的。我在互联网上搜索了一些寻求帮助,但没有找到任何可以帮助我的东西,因为我想让用户输入他们想要读取和写入的文件位置。
我想要: 1. 创建一个允许用户选择文件名并将文件内容输出到控制台的类。推荐使用文本文件来显示,java文件是文本文件。您可能希望将此代码放在一个方法中,以允许您在不覆盖代码的情况下完成此分配的其余部分。一个。要求用户输入文件的完整路径,以确保您正在处理正确的文件。2.修改你的代码/添加一个方法来以相反的顺序显示文件的内容。您不需要反转每行上的字符,只需以相反的顺序输出文件的行。一个。将文件内容读入一个ArrayList,然后遍历ArrayList。3. 最后,将文件内容复制到另一个文件中。您将需要遍历文件并将每一行写入一个新文件。我还想创建一个新异常 FileMissingException,它将扩展 FileNotFoundException。您将需要创建一个单独的类来保存您的新异常。修改您的代码以捕获 FileNotFoundException 并引发 FileMissingException。在您的 main() 中捕获 FileMissingException 并打印 message.from 异常。
由于我必须完成所有工作,该程序变得有点杂乱无章。请记住,我是编程入门,所以有很多我不明白的地方,但我会尽力而为。你们给我的任何提示都会非常有帮助。
我写的新代码:
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class TextFile
{
private static ArrayList<String> filesData = new ArrayList<String>();
private static Scanner console = new Scanner(System.in);
public static void main(String[] args) throws FileNotFoundException
{
System.out.println("Input file: ");
String fileNameInput = console.nextLine();
// Construct the Scanner and PrintWriter objects for reading and writing
File inputFile = new File(fileNameInput);
Scanner in = new Scanner(inputFile);
do
{
// Asks the user what they would like to do with the file info based on number input.
System.out.println("Please enter the number for your choice: ");
System.out.println("1. Display the contents of the file.");
System.out.println("2. Reverse the contents of the file.");
System.out.println("3. Write the contents of the file to a new file.");
System.out.println("0. Exits the program");
int num = console.nextInt();
console.nextLine();
switch(num)
{
case 0:
in.close();
System.exit(0);
break;
case 1:
while (in.hasNext())
{
String lines = in.nextLine();
System.out.println(lines);
}
break;
case 2:
displayReverse(inputFile);
break;
case 3:
outputFile(inputFile);
break;
default:
break;
}
}while (true);
}
public static void displayReverse(File inputFile) throws FileNotFoundException
{
Scanner in = new Scanner(inputFile);
while (in.hasNext())
{
String text = in.next();
filesData.add(text);
}
for (int i = filesData.size(); i > 0; i--)
{
System.out.print(filesData.get(i - 1) + " ");
}
in.close();
}
public static void outputFile(File inputFile) throws FileNotFoundException
{
System.out.println("Name your new file(hint: do not worry about a complete path here!): ");
String outputFileName = inputFile.getParentFile() + "\\" + console.nextLine();
Scanner in = new Scanner(inputFile);
PrintWriter outFiles = new PrintWriter(outputFileName);
while (in.hasNext())
{
String line = in.next();
outFiles.print(line + " ");
}
outFiles.close();
in.close();
}
}