java對文件的讀寫(附源碼)

java對文件的讀寫(附源碼)

對文件的讀寫操作是學java開發的基礎,讀寫操作又分爲兩種:字符流和字節流,概念稍微闡述下,網上有很多比我講的好,這裏主要是源碼。

字節流和字符流

字節流可用於任何類型的對象,包括二進制對象,字節流提供了處理任何類型的IO操作的功能,對音頻文件、圖片、歌曲處理比較多。
字符流只能處理字符或者字符串,字符流就可以直接處理Unicode字符,對文件操作比較多;

IO流的概括

網上比較經典的一個IO圖借鑑一下,方便一起更好的理解IO流。
在這裏插入圖片描述

輸入輸出流操作的流程

  1. 使用File類打開文件
  2. 通過字節流或字符流的子類,指定輸出的位置
  3. 進行讀/寫操作(BufferedReader / BufferedWriter
  4. 關閉輸入/輸出

寫入文件

/**
 * 寫入TXT文件
 */
public static void writeFile() {

    String path = "D:/test.txt";//路徑的test.txt文件

    File file; //使用File類打開文件
    FileOutputStream fileOutputStream;//建立一個文件輸出流對象fileOutputStream
    OutputStreamWriter outputStreamWriter; //建立一個輸出流對象outputStreamWriter
    BufferedWriter bufferedWriter;//文件操作
    try {
        // 1.使用File類打開一個文件
        file = new File(path);
        file.createNewFile(); // 創建新文件

        //  2. 通過字節流或字符流的子類,指定輸出的位置
        fileOutputStream = new FileOutputStream(file);
        outputStreamWriter = new OutputStreamWriter(fileOutputStream);
        bufferedWriter = new BufferedWriter(outputStreamWriter);

        // 3.進行讀/寫操作(BufferedReader / BufferedWriter)
        bufferedWriter.write("hello world!\r\n");
        bufferedWriter.write("你好!\r\n");
        bufferedWriter.flush(); // 把緩存區內容壓入文件

        // 4.關閉輸入/輸出
        bufferedWriter.close(); // 關閉
        fileOutputStream.close();
        outputStreamWriter.close();

        System.out.println("寫入文件成功!");
    } catch (IOException e) {
        e.printStackTrace();
    }

}

讀取文件

    /**
     * 讀取TXT文件
     */
    public static void readFile() {
    String path = "D:/test.txt";//路徑的test.txt文件

    File file; //使用File類打開文件
    FileInputStream fileInputStream;
    InputStreamReader inputStreamReader; //建立一個文件輸入流對象inputStreamReader
    BufferedReader bufferedReader;
    try {
        // 1.使用File類打開一個文件
        file = new File(path);

        //  2. 通過字節流或字符流的子類,指定輸出的位置
        fileInputStream = new FileInputStream(file);
        inputStreamReader = new InputStreamReader(fileInputStream);
        bufferedReader = new BufferedReader(inputStreamReader);

        // 3.進行讀/寫操作(BufferedReader / BufferedWriter)
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println("讀取文件內容:" + line);
        }

        // 4.關閉輸入/輸出
        fileInputStream.close();
        inputStreamReader.close();
        bufferedReader.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

源碼

親測可用,歡迎提出修改意見

package com.demo;

import java.io.*;

/**
 * @Author: lhb
 * @CreateTime: 2019-07-01 17:07:01
 * @Description: Java讀取txt文件和寫入txt文件
 */
public class Test {

    public static void main(String args[]) {
        writeFile();
        //readFile();
    }

    /**
     * 寫入TXT文件
     */
    public static void writeFile() {

        String path = "D:/test.txt";//路徑的test.txt文件

        File file; //使用File類打開文件
        FileOutputStream fileOutputStream;//建立一個文件輸出流對象fileOutputStream
        OutputStreamWriter outputStreamWriter; //建立一個輸出流對象outputStreamWriter
        BufferedWriter bufferedWriter;//文件操作
        try {
            // 1.使用File類打開一個文件
            file = new File(path);
            file.createNewFile(); // 創建新文件

            //  2. 通過字節流或字符流的子類,指定輸出的位置
            fileOutputStream = new FileOutputStream(file);
            outputStreamWriter = new OutputStreamWriter(fileOutputStream);
            bufferedWriter = new BufferedWriter(outputStreamWriter);
        // 3.進行讀/寫操作(BufferedReader / BufferedWriter)
        bufferedWriter.write("hello world!\r\n");
        bufferedWriter.write("你好!\r\n");
        bufferedWriter.flush(); // 把緩存區內容壓入文件

        // 4.關閉輸入/輸出
        bufferedWriter.close(); // 關閉
        fileOutputStream.close();
        outputStreamWriter.close();

        System.out.println("寫入文件成功!");
    } catch (IOException e) {
        e.printStackTrace();
    }

}

/**
 * 讀取TXT文件
 */
public static void readFile() {

    String path = "D:/test.txt";//路徑的test.txt文件

    File file; //使用File類打開文件
    FileInputStream fileInputStream;
    InputStreamReader inputStreamReader; //建立一個文件輸入流對象inputStreamReader
    BufferedReader bufferedReader;
    try {
        // 1.使用File類打開一個文件
        file = new File(path);

        //  2. 通過字節流或字符流的子類,指定輸出的位置
        fileInputStream = new FileInputStream(file);
        inputStreamReader = new InputStreamReader(fileInputStream);
        bufferedReader = new BufferedReader(inputStreamReader);

        // 3.進行讀/寫操作(BufferedReader / BufferedWriter)
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println("讀取文件內容:" + line);
        }

        // 4.關閉輸入/輸出
        fileInputStream.close();
        inputStreamReader.close();
        bufferedReader.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章