首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

簡單的用java實現讀/寫文本文件的示例

     編輯:Java 程式設計入門

Java文本文件讀寫三種核心模式完整示例

涵蓋:文件→內存、內存→文件、文件→文件流式拷貝。所有方法獨立可複用。

核心工具類

import java.io.*;

public final class AccessTextFile {

    /** 1. 讀取輸入流文本到StringBuffer */
    public void readToBuffer(StringBuffer buffer, InputStream is) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        String line;
        while ((line = reader.readLine()) != null) {
            buffer.append(line).append("\n");
        }
    }

    /** 2. 將StringBuffer寫入輸出流 */
    public void writeFromBuffer(StringBuffer buffer, OutputStream os) {
        new PrintStream(os).print(buffer.toString());
    }

    /** 3. 流式拷貝:輸入流→輸出流(逐行) */
    public void copyStream(InputStream is, OutputStream os) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
        String line;
        while ((line = reader.readLine()) != null) {
            writer.println(line);
        }
        writer.flush(); // 不關閉writer,由調用方管理外層流
    }

    /** 4. 文件到文件拷貝 */
    public void copyTextFile(String inFilename, String outFilename) throws IOException {
        try (InputStream is = new FileInputStream(inFilename);
             OutputStream os = new FileOutputStream(outFilename)) {
            copyStream(is, os);
        } // try-with-resources自動關閉
    }

    public static void main(String[] args) throws IOException {
        AccessTextFile test = new AccessTextFile();
        int sw = 1; // 1=讀 2=寫 3=拷貝
        switch (sw) {
            case 1:
                try (InputStream is = new FileInputStream("E:\\test.txt")) {
                    StringBuffer buf = new StringBuffer();
                    test.readToBuffer(buf, is);
                    System.out.println(buf);
                }
                break;
            case 2:
                test.writeFromBuffer(new StringBuffer("Only a test\n"), System.out);
                break;
            case 3:
                test.copyTextFile("E:\\test.txt", "E:\\r.txt");
                break;
        }
    }
}

關鍵點總結

  • 編碼處理:使用InputStreamReader/OutputStreamWriter指定字符集(默認平台編碼)。
  • 資源管理:Java 7+推薦try-with-resources自動關閉;流由調用方打開則由調用方關閉。
  • 緩衝效率:BufferedReader.readLine()+PrintWriter.println()逐行處理,適合大文件。
  • PrintStream/PrintWriter:提供類System.out的便捷輸出方法。

三種模式覆蓋日常文本文件操作 90% 場景,代碼簡潔、健壯、易擴展。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved