程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 題二的代碼對嗎 謝謝-題二的代碼對嗎?謝謝

題二的代碼對嗎 謝謝-題二的代碼對嗎?謝謝

編輯:編程綜合問答
題二的代碼對嗎?謝謝

題一、編寫程序,創建一個數據文件a.txt,並通過FileWrite對象向其中輸出整數1~100
package demo1;
import java.io.*;

public class 題一 {

public static void main(String[] args) {
    // TODO 自動生成的方法存根


    try {
        FileWriter fw=new FileWriter("./src/a.txt",true);
        for(int i=1;i<=100;i++){
            fw.write(i+"  ");
        }
        fw.close();
        System.out.println("寫入文件成功");
    } catch (IOException e) {
        // TODO 自動生成的 catch 塊
        e.printStackTrace();
    }
}

}

題二、從上一題生成的數據文件a.txt中讀取數據,每讀一個數據計算它的平方和平方根,然後把這些數據輸出到一個新數據文件b.txt
package demo1;
import java.io.*;
public class 題二 {

public static void main(String[] args){
    // TODO 自動生成的方法存根
    try {
        FileWriter fw=new FileWriter("src/b.txt",true);
        FileReader fr=new FileReader("src/a.txt");
        int result=fr.read();
        System.out.println("讀取文件的內容如下:");
        while(result!=-1){
            System.out.print((String.valueOf((char)result)));
            result=fr.read();

        }
        for(int i=1;i<=100;i++){
            fw.write(i*i+"  "+Math.sqrt(i));
        }
        fw.close();
        System.out.println("寫入文件成功");
        fr.close();
    } catch (FileNotFoundException e) {
        // TODO 自動生成的 catch 塊
        e.printStackTrace();
    }catch (IOException e) {
        // TODO 自動生成的 catch 塊
        e.printStackTrace();
    }
}

}

最佳回答:


個人認為你第一題的代碼符合要求,能夠完成題目所要求的功能;但是第二題就不符合要求了,題目要求使用讀取的數據計算平方和和平方根,而你的代碼使用了自己的for循環進行輸出,這是不符合要求的。也就是說你根本沒有使用讀取的數據。

考慮到第二題的解決方案,建議你第一題也做相應的修改,即沒輸出一個數據就換行,然後第二題中使用BufferedReader.readLine()方法來讀取每一行的數據,這樣就可以直接使用了讀取的數據了。使用FileReader時讀取的是每一個char,需要對數字進行判斷,不好用。下面是兩道題目的我的答案,請參考:

題一:

import java.io.*;

public class Question1 {
    public static void main(String[] args) {
        // TODO 自動生成的方法存根

        try {
            FileWriter fw = new FileWriter("./src/a.txt", true);
            for (int i = 1; i <= 100; i++) {
                fw.write(i + "\r\n");
            }
            fw.close();
            System.out.println("寫入文件成功");
        } catch (IOException e) {
            // TODO 自動生成的 catch 塊
            e.printStackTrace();
        }
    }
}

題二

import java.io.*;

public class Question2 {
    public static void main(String[] args) {
        // TODO 自動生成的方法存根
        try {
            FileWriter fw = new FileWriter("src/b.txt", true);
            BufferedReader br = new BufferedReader(new FileReader("src/a.txt"));
            String result = br.readLine();
            System.out.println("讀取文件的內容如下:");
            int readValue = 0;
            while (result != null) {
                System.out.println(result);
                readValue = Integer.valueOf(result);
                fw.write(readValue * readValue + "\t" + Math.sqrt(readValue)
                        + "\r\n");
                result = br.readLine();

            }
            System.out.println("寫入文件成功");
            fw.close();
            br.close();
        } catch (FileNotFoundException e) {
            // TODO 自動生成的 catch 塊
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自動生成的 catch 塊
            e.printStackTrace();
        }
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved