使用Java访问外部文件
我正在用Java创建一个任务列表应用程序,但在试图从代码中访问外部文件时遇到了问题。这就是我到目前为止所做的:使用Java访问外部文件,java,Java,我正在用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[
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时,会出现“无法访问文件”错误。这可能是指向外部文件的错误链接吗?和建议帮助。您所谓的
无法访问文件
错误是由您创建的:
System.out.println("Can't Access File");
当无法找到给定的文件路径和/或文件名时,即:FileNotFoundException
确保您提供了正确的文件名和/或文件路径。您所谓的
无法访问文件
错误是由您创建的:
System.out.println("Can't Access File");
当无法找到给定的文件路径和/或文件名时,即:FileNotFoundException
确保提供了正确的文件名和/或文件路径。我尝试运行代码。您需要提及文件的完整路径,例如C:/tempDir/xyz.txt。 另外,您抛出的异常具有误导性。即使你有一个IOE,你也会抛出“无法访问该文件”,这意味着你的应用程序无法访问该文件,而事实并非如此。它应该是System.out.println(ioe);
这将告诉您实际错误。我尝试运行代码。您需要提及文件的完整路径,例如C:/tempDir/xyz.txt。 另外,您抛出的异常具有误导性。即使你有一个IOE,你也会抛出“无法访问该文件”,这意味着你的应用程序无法访问该文件,而事实并非如此。它应该是System.out.println(ioe);
这将告诉您实际的错误。您可以粘贴实际的错误消息(带有堆栈跟踪)吗?可能重复,因此您发布的大多数代码和标记
开关语句
与您遇到的问题完全无关?1)感谢您删除“开关语句”标记。2) 这个异常无疑是“FileNotFoundException”。您应该修改“catch()”块以打印实际的JAVA异常:ioe.getMessage()
!!!3) 您有一个-Java期望在当前目录下找到“Users/xyz”。错了!使用一个。我将“接受”user3509208的回复。IMHO…你能粘贴到实际的错误消息(带有堆栈跟踪)中吗?可能是重复的,因此你发布的大多数代码和标记switch statement
与你遇到的问题完全无关?1)感谢你删除了“switch statement”标记。2) 这个异常无疑是“FileNotFoundException”。您应该修改“catch()”块以打印实际的JAVA异常:ioe.getMessage()
!!!3) 您有一个-Java期望在当前目录下找到“Users/xyz”。错了!使用一个。我将“接受”user3509208的回复。谢谢你的帮助,这个错误信息是误导性的。由于某些原因,路径没有被找到,它可能很简单,但它阻碍了整个过程。我知道了…我忘记了文件路径中的第一个“/”。谢谢你提醒我注意这个问题。你是WC。很高兴我能提供帮助。谢谢你的帮助,那个错误消息是误导性的。由于某些原因,路径没有被找到,它可能很简单,但它阻碍了整个过程。我知道了…我忘记了文件路径中的第一个“/”。谢谢你提醒我注意这个问题。你是WC。很高兴我能帮忙。