java - FileNotFoundException 解决方案?

标签 java filenotfoundexception filewriter printwriter

创建一个程序,将数据从数组列表写入文本文件,即使文件存在,我也遇到了这个 FileNotFoundException 。同时,我的数组中计算的数据不会写入其中。

这是我的代码:

 public static void payrollReadFromFile(String filename) {

        // initializes br identifer as BufferedReader.
        BufferedReader br = null;

        payrolls.clear(); // removes all elements in arraylist employees

        try {

            br = new BufferedReader(new FileReader("payroll.txt")); 
            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 payroll 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("payroll.txt")); 

            try {

                // for each loop. each data from payrolls is     
written to parameter

                for (Person payroll : payrolls) {

                    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;
    }

最佳答案

您的文件打开语句:

   br = new BufferedReader(new FileReader("payroll.txt")); 

未使用您传递到该方法中的变量文件名。

您需要:

   br = new BufferedReader(new FileReader(filename)); 

您可能还想使用 File 对象。

关于java - FileNotFoundException 解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775979/

相关文章:

java - 我想通过java从主机和jmx端口获取指标

java - FileNotFoundException 起始 jar - 在资源文件夹中看不到文件

android - 访问存储在/storage/emulated/0 目录中的文件时出现 FileNotFoundException

java - xstream 序列化堆空间

java - 如何在Java中从Web上显示图像?

java - 在方法/函数中使用类变量会创建对源的引用而不是重复它?

java - 以人类可读的格式将巨大的 ArrayList 写入文件

java - 是否可以使用同一个文件编写器来写入不同的文件

java - 无法上传大文件

android - 将原始文件夹文件的 uri 存储到 ArrayList<String>