-1

こんにちは皆さん、私は Java を初めて使用します。私の要件の 1 つは、ユーザーが、従業員、住所、性別、ステータス、勤務日数、1 日あたりの料金などの編集削除ビュー レコードを追加できるようにするプログラムを作成することです。メモ帳 、それを追加した後、プログラムは税金やsssの貢献などを計算し、別のtxtfileに保存され、表示および編集することもできます. 私の問題は、txtfileに計算を書き込めず、「FileNotFoundException」を取得できないことです。txtファイルを読み書きする私のコードはこちら

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

誰かが私を助けることができますか?どうすればいいのかわからない。前もって感謝します

4

3 に答える 3

0

この質問と回答の鍵は、コードのレベルと質問のレベルがまったく異なるということです。このコードは Java の知識が豊富な人によって書かれたように思えますが、尋ねている人は (本人が認めているように) 初心者です。したがって、選択肢は次の 2 つです。

1) 私たちの 1 つを雇って、あなたのためにそれを修正します。あなたは私を雇うことができますが、私は高価です.

2) Java を学びます。もしあなたがクラスを受講している学生なら、これを学ぶべきです。分解してゆっくりと。

デバッグのヒントは次のとおりです。

System.out.println(ファイル名);

このようにして、探しているファイル名が何であるかを確認できます。

あなたの問題を修正することは、stackoverflow の貢献者の責任ではありません。私たちはあなたが学ぶのを助けるためにここにいます。

于 2013-04-02T15:25:35.630 に答える
-1

次のように、例外をスローできます。

public static void payrollReadFromFile(String filename) throws FileNotFoundException {

また、try and catch メソッドを調べることをお勧めします。

于 2013-04-02T10:09:29.290 に答える