iT邦幫忙

2022 iThome 鐵人賽

DAY 22
1

Java的I/O => 就是檔案讀取和寫入的方式

java.io => 裡面放了很多種處理檔案的工具和物件

java.io.File

File(fileName) => fileName: 檔案夾的路徑位置
這個物件可以去

  1. mkdir() => 建立檔案夾 | mkdirs() => 一起幫忙建立父檔案夾
  2. list() => 讀取目錄,回傳檔案名稱的String陣列
  3. delete() => 刪除檔案
import java.io.File;

public class Main {
    public static void main(String[] args) {
        String fileName = "C:\\Users\\Max\\IOfile";
        String newName = "C:\\Users\\Max\\IOfile\\TestFolder";
        File file = new File(fileName);
        File file1 = new File(newName);
        // 建立資料夾
        file1.mkdirs();
        // 讀取目錄
        String[] arr = file.list();
        for (String i: arr) {
            System.out.println(i);
        }
        System.out.println("-------------");
        // 刪除檔案
//        file1.delete();
        System.out.println("end");
    }
}

讀取檔案內容 => FileReader => BufferReader => readLine()

  1. FileInputStream(fileName) => 用Byte方式讀取(讀取影音檔或是圖檔)
  2. FileReader(fileName) => 用Char、String方式讀取(讀取文字檔)
    讀取文字檔時會用到兩個物件
  3. FileReader => fr = new FileReader(fileName)
  4. BufferedReader => br = new BufferedReader(fr)
import java.io.*;

public class Main {
    public static void main(String[] args) {
        String fileName = "C:\\Users\\IOfile\\text.txt";
        read(fileName);
    }
    public static void read(String fileName){
        FileReader fr = null;
        try {
            fr = new FileReader(fileName);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        BufferedReader br = new BufferedReader(fr);
        String tmp = null;

        try {
            while (((tmp = br.readLine()) != null)) {
                System.out.println(tmp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

寫入檔案內容 => FileWriter => BufferedWriter => write()

  1. FileOutputStream(fileName) => 用Byte方式寫入(寫入影音檔或是圖檔)
  2. FileWriter(fileName) => 用Char、String方式寫入(寫入文字檔)
    寫入文字檔我們也會用到兩個物件
  3. FileWriter => fw = new FileWriter(fileName)
  4. BufferedWriter => bw = new BufferedWriter(fw)
import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        String fileName = "C:\\Users\\Max\\IOfile\\text.txt";
        write(fileName);
    }
    public static void write(String fileName){
        List<String> list = new ArrayList<String>();
        list.add("Java的I/O");
        list.add("讀取檔案內容");
        list.add("寫入檔案內容");
        try {
            FileWriter fw = new FileWriter(fileName);
            BufferedWriter bw = new BufferedWriter(fw);

            for (String s: list){
                bw.write(s);    // 寫入資料
                bw.newLine();   // 新增一行
            }
            bw.flush(); // 把記憶體資料寫進去
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}


上一篇
Day21: Swing元件(下)
下一篇
Day23: Java Web
系列文
大學耍廢的我要學Java翻身30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言