【发布时间】:2023-03-27 16:26:01
【问题描述】:
我正在用 Java 创建一个任务列表应用程序,但在尝试从我的代码中访问外部文件时遇到了问题。这是我目前所拥有的:
import java.io.*;
import java.util.Scanner;
public class Main {
public static String fileName = "Users/bobsmith/Desktop/tasklistjava/src/javatask.txt";
public static void main(String[] args) throws IOException {
int menuItem = -1;
while(menuItem != 0){
menuItem = menu();
switch (menuItem){
case 1:
showTaskList();
break;
case 2:
addTask();
break;
case 3:
sortList();
break;
case 0:
break;
default:
System.out.println("Invalid Input");
}
}
}
static int menu(){
int choice;
Scanner sc = new Scanner(System.in);
System.out.println("\n Task List Menu \n");
System.out.println("0: Exit Menu");
System.out.println("1: Show Tasks in List");
System.out.println("2: Add Task to List");
System.out.println("3: Sort Tasks by Due Date");
System.out.println();
System.out.println("Enter a Task: ");
choice = sc.nextInt();
return choice;
}
static void showTaskList(){
System.out.println("\nTask List\n");
try {
Scanner inFile = new Scanner(new FileReader(fileName));
String line;
int number = 1;
while(inFile.hasNextLine()){
line = inFile.nextLine();
System.out.println(number + " ");
System.out.println(line);
++number;
}
System.out.println();
inFile.close();
} catch (FileNotFoundException ioe) {
System.out.println("Can't Access File");
}
}
static void addTask(){
System.out.println("\nAdd Task\n");
try {
Scanner input = new Scanner(System.in);
PrintWriter outFile = new PrintWriter(new FileWriter(fileName, true));
System.out.println("Enter a Task: ");
String addedTask = input.nextLine();
System.out.println("You Must set a Due Date for this task: ");
String dueDate = input.nextLine();
outFile.println(addedTask + " " + dueDate);
outFile.close();
} catch (IOException ioe) {
System.out.println("Can't Access File");
}
}
static void sortList(){}
}
当我输入选项 1 或 2 时,我收到“无法访问文件”错误。这可能只是指向外部文件的错误链接吗?建议会有所帮助。
【问题讨论】:
-
你能粘贴 actual 错误消息(带有堆栈跟踪)吗?
-
所以您发布的大部分代码以及标签
switch-statement与您遇到的问题完全无关? -
1) 感谢您删除“switch-statement”标签。 2) 异常无疑是“FileNotFoundException”。您应该修改您的“catch()”块打印实际的 JAVA 异常:
ioe.getMessage()!!! 3) 你有一个relative path - Java 期望在在你当前的目录下找到“Users/xyz”。错误的!使用fully qualified path。我会“接受”user3509208 的回复。恕我直言...
标签: java