Java FileNotFoundException
大家好,我是java新手,我的一个要求是创建一个程序,使用户能够添加编辑删除视图记录,如员工、地址、性别、状态、工作天数和保存在记事本中的每日费率,加起来后,程序将计算税收和sss供款等,这些费用也将保存到不同的TXT文件中,也可以查看和编辑。我的问题是我不能在txtfile上写计算并得到“FileNotFoundException”。这是我在txt文件中读写的代码Java FileNotFoundException,java,inputstream,filenotfoundexception,fileinputstream,Java,Inputstream,Filenotfoundexception,Fileinputstream,大家好,我是java新手,我的一个要求是创建一个程序,使用户能够添加编辑删除视图记录,如员工、地址、性别、状态、工作天数和保存在记事本中的每日费率,加起来后,程序将计算税收和sss供款等,这些费用也将保存到不同的TXT文件中,也可以查看和编辑。我的问题是我不能在txtfile上写计算并得到“FileNotFoundException”。这是我在txt文件中读写的代码 public static void payrollReadFromFile(String filename) {
public static void payrollReadFromFile(String filename) {
// initializes br identifer as BufferedReader.
BufferedReader br = null;
payrolls.clear(); // removes all elements in arraylist employees
try {
// instantiate br as FileReader with filename param
br = new BufferedReader(new FileReader(filename));
try {
String name;
double gincome, nincome, deduc, sss, pagibig, phil = 0; // initialize identifiers
// reads each line through br identifier, and stores it on
// temporary identifiers
// loop continues until null is encountered
while ((name = br.readLine()) != null) {
gincome = Double.parseDouble(br.readLine());
sss = Double.parseDouble(br.readLine());
pagibig = Double.parseDouble(br.readLine());
phil = Double.parseDouble(br.readLine());
deduc = Double.parseDouble(br.readLine());
nincome = Double.parseDouble(br.readLine());
// adds the data to employees arraylist
payrolls.add(new Person( name, gincome, sss, pagibig, phil,deduc, nincome));
}
} finally {
br.close(); // closes BufferedReader
}
} catch (IOException e) {
e.printStackTrace();
}
}
// method which writes data into parameter 'filename'
// uses PrintWriter and FileWriter
public static boolean payrollWriteToFile(String filename) {
boolean saved = false;
PrintWriter pw = null; // pw is a PrintWriter identifier
try {
// instantiate pw as PrintWriter, FileWriter
pw = new PrintWriter(new FileWriter(filename));
try {
// for each loop. each data from employees is written to parameter
// filename
for (Person payroll : payrolls) {
// pw.println(employee.getId());
pw.println(payroll.getName());
pw.println(payroll.getGincome());
pw.println(payroll.getSss());
pw.println(payroll.getPagibig());
pw.println(payroll.getPhil());
pw.println(payroll.getDeduc());
pw.println(payroll.getNincome());
}
saved = true;
} finally {
pw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
return saved;
}
有人能帮我吗?我不知道该怎么办。提前感谢您可以抛出异常,如下所示:
public static void payrollReadFromFile(String filename) throws FileNotFoundException {
另外,我建议您查看try-and-catch方法。异常的好处在于堆栈跟踪(可能是您在控制台输出中看到的)准确地告诉您是哪行代码引发了异常。很可能是这句话:
br = new BufferedReader(new FileReader(filename));
查看将文件传递到
payrollReadFromFile
方法的代码。您传递的文件不是您认为的位置。传递文件对象而不是字符串可能更有意义,因为文件对象不仅包含文件名,还包含该文件的完整路径。这个问题和答案的关键是代码级别和问题级别完全不同。在我看来,这段代码是由具有相当多java知识的人编写的,但提出问题的人(他们自己承认)是一个新手。因此,有两种选择:
1) 请我们中的一个帮你修理。你可以雇用我,但我很贵,还有其他人会便宜地雇用我
2) 学习Java,如果你是一个正在上课的学生,那么你应该学习这个。把它分解,慢一点
以下是调试提示:
System.out.println(文件名)
这样您就可以看到您要查找的文件名是什么
解决您的问题不是stackoverflow贡献者的责任。我们在这里帮助你学习 FileNotFound,就是这样,您正在尝试打开一个不存在的文件。请帮助我,您可以给我发电子邮件@jmtabasa@gmail.comAre你确定你的文件在正确的地方吗<代码>System.getProperty(“user.dir”)代码>将在您运行程序时告诉您程序的当前目录。。。我只是复制了我和我的员工创建文件的过程。。因为我想为员工记录和工资单提供单独的txt文件。。从下午开始我就一直在做这个,你能帮我吗?你把什么作为参数传递(文件名的值是多少)以及文件在你的磁盘上的什么位置?这对他们有什么帮助?他们已经在使用try-catch,问题是找不到该文件,而不是他们不知道什么是FileNotfoundException。这帮不了他。。!!FileNotFoundException已消失。我现在的问题是写入txt文件。我用的是PrintWriter和FileWriter。。我的代码是:PrintWriter pw=null;pw=新的PrintWriter(新的FileWriter(文件名));你的问题被否决了,因为不清楚你的问题是什么。试着问一个新问题,明确你的错误是什么,你尝试了什么。你的评论中的一行代码没有错。请帮助我们了解您正在尝试做什么,以及您的错误是什么(当然,请发布相关代码),我或其他人会回答。