首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 文件讀寫練習:題一寫入 1-100,題二讀取計算平方與平方根輸出

     編輯:程式設計綜合問答

題一:寫入 1-100 到 a.txt

package demo1;
import java.io.*;

public class Question1 {
    public static void main(String[] args) {
        try (FileWriter fw = new FileWriter("./src/a.txt")) {
            for (int i = 1; i <= 100; i++) {
                fw.write(i + "\r\n"); // 每行一個數字,便於讀取
            }
            System.out.println("寫入文件成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

題二:讀取 a.txt,計算平方與平方根寫入 b.txt

package demo1;
import java.io.*;

public class Question2 {
    public static void main(String[] args) {
        try (FileWriter fw = new FileWriter("./src/b.txt");
             BufferedReader br = new BufferedReader(new FileReader("./src/a.txt"))) {
            
            String line;
            System.out.println("讀取文件內容如下:");
            while ((line = br.readLine()) != null) {
                System.out.println(line);
                int val = Integer.parseInt(line.trim());
                fw.write(val * val + "\t" + Math.sqrt(val) + "\r\n");
            }
            System.out.println("寫入文件成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

關鍵修正點

  • 題一:每行一個數字 (\r\n),方便題二按行讀取解析。
  • 題二:使用 BufferedReader.readLine() 按行讀取,Integer.parseInt 轉換,直接使用讀取的數據計算,**不可重新循環 1-100**。
  • 資源管理:try-with-resources 自動關閉流,異常安全。
  • 編碼:生產環境指定 StandardCharsets.UTF_8。

常見錯誤對比

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤寫法問題正確寫法
fw.write(i + " ")同一行空格分隔,讀取需分割fw.write(i + "\r\n")
fr.read() 逐字符讀需手動拼裝數字,極其麻煩BufferedReader.readLine()
for(i=1; i<=100; i++) 重新算**未使用讀取數據**,違背題意解析 readLine() 得到的 val 計算