1. 程式人生 > >Java基礎 實驗七 檔案操作

Java基礎 實驗七 檔案操作

一、實驗內容

    1)程式設計:求2~200之間的所有素數,將求得的結果儲存到PRIME.DAT檔案中。

    2)程式設計:檢查C盤根目錄下CONFIG..SYS檔案是否存在,若在則顯示該檔案的名稱和內容。

    3)程式設計:輸入5個學生的資訊(包含學號、姓名、3科成績),統計各學生的總分,然後將學生資訊和統計結果存入二進位制資料檔案STUDENT.DAT中。

    4)程式設計:從第(3)題中建立的STUDENT.DAT檔案中讀取資料,尋找平均分最高的學生,並輸出該學生的所有資訊。

二、實驗程式碼

package exceptionseven;

import java.io.*;

public class ExceptionSeven {
    /**
     * 問題一
     * 求2~200之間的所有素數,將求得的結果儲存到PRIME.DAT檔案中
     */
    public void One() throws FileNotFoundException, IOException {
        FileOutputStream fos = new FileOutputStream("D:\\PRIME.DAT");
        int temp = 2;
        fos.write(String.valueOf(temp).getBytes());
        fos.write(" ".getBytes());
        temp = 3;
        fos.write(String.valueOf(temp).getBytes());
        fos.write(" ".getBytes());
        for(int i = 3; i <= 100; i++) {
            for(int j = 2; j <= i/2; j++) {
                if(i%j == 0) {
                    break;
                }
                if(j == i/2) {
                    //System.out.println("100以內素數:" + i);
                    fos.write(String.valueOf(i).getBytes());
                    fos.write(" ".getBytes());
                }
            }
        }
        fos.close();
    }
    /**
     * 問題二
     * 檢查C盤根目錄下CONFIG..SYS檔案是否存在,
     * 若在則顯示該檔案的名稱和內容。
     */
    public void Two() throws FileNotFoundException, IOException {
        String filePath1 = "C:\\CONFIG.SYS" ;
        String filePath2 = "D:\\users.txt";
        String filePath3 = "D:\\PRIME.DAT";
        File fi = new File(filePath3);
        if(fi.exists()) {
            System.out.println("檔名稱為:" + fi.getName());
            FileInputStream fis = new FileInputStream(fi);
            byte[] data = new byte[(int)fi.length()];
            fis.read(data);
            fis.close();
            String msg = new String(new String(data));
            System.out.println("檔案內容為:");
            System.out.println(msg);
        } else {
            System.out.println("檔案不存在");
        }
    }
    public void ThreeAndFour() throws FileNotFoundException, IOException {
        //五名學生的資訊:
        int i, j;
        int sum = 0;
        String[] Sno = {"123", "456", "789", "147", "258"};
        String[] Name = {"zhangSan", "liSi", "wangWu", "lixiao", "niNing"};
        double[][] Score = {{56, 58, 99}, {45, 88, 65}, {12, 74, 54}, {12, 56, 54}, {85, 74, 54}};
        double[] sumScore = new double[5];
        for (i = 0; i < 5; i++) {
            for(j = 0; j < 3; j++) {
                sum += Score[i][j];
            }
            sumScore[i] = sum;
            sum = 0;
        }
        //五名學生的學號、姓名、總成績存入檔案中
        String filePath = "D:\\STUDENT.DAT" ;
        File file = new File(filePath);
        OutputStream fos = new FileOutputStream(file);
        DataOutputStream dos = new DataOutputStream(fos);
        for(i = 0; i < 5; i++) {
            dos.writeUTF(Sno[i]);
            dos.writeUTF(Name[i]);
            dos.writeDouble(sumScore[i]);
        }
        dos.close();
        //讀取資料
        String[] newSno = new String[5];
        String[] newName = new String[5];
        double[] newSum = new double[5];
        InputStream fis = new FileInputStream(file);
        DataInputStream dis = new DataInputStream(fis);
        for(i = 0; i < 5; i++) {
            newSno[i] = dis.readUTF();
            newName[i] = dis.readUTF();
            newSum[i] = dis.readDouble();
            System.out.print(newSno[i] + " " + newName[i] + " ");
            System.out.printf("%.1f\n",newSum[i]/3.0);
        }
        dis.close();
    }
    public static void main(String[] args) throws IOException {
        ExceptionSeven exec = new ExceptionSeven();
        exec.One();
        exec.Two();
        exec.ThreeAndFour();
    }
    
}

三、執行結果