java对文件的读写(附源码)

本文详细介绍了Java中文件的读写操作,包括字节流和字符流的概念与应用。通过具体示例,演示了如何使用File类、FileInputStream、FileOutputStream、BufferedReader和BufferedWriter等API进行文件的读取和写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
    }
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值