Java IO流之合并文件到另一个文件

简介: 有时候,我们的IO要求实现将两个文件的内容合并到一个文件里来。

有时候,我们的IO要求实现将两个文件的内容合并到一个文件里来。

比如,我们有一个1.txt,一个2.txt。我们该如何将两个文件里面的内容,合并到3.txt呢?

创建第一个文件的流

//1.txt字符输入流与字符缓冲输入流
FileReader fr = new FileReader("D:\\1.txt");
BufferedReader br = new BufferedReader(fr);

我们这里使用了缓存流来读取。

创建第二个文件的流

//2.txt字符输入流与字符缓冲输入流
FileReader fr2 = new FileReader("D:\\2.txt");
BufferedReader br2 = new BufferedReader(fr2);

我们这里使用了缓存流来读取。

创建第三个文件的流

//3.txt字符输出流与字符缓冲输出流
FileWriter fw3 = new FileWriter("D:\\3.txt");
BufferedWriter bw3 = new BufferedWriter(fw3);

我们这里和上面有所不同,我们需要的是缓冲流的写入,所以我们是使用BufferedWriter对象。

实现合并

//读取1.txt文件内容并循环写入
String line = br.readLine();
while (line != null) {
    bw3.write(line);
    bw3.newLine();
    line = br.readLine();
}
//读取2.txt文件内容并循环写入
String line2 = br2.readLine();
while (line2 != null) {
    bw3.write(line2);
    bw3.newLine();
    line2 = br2.readLine();
}

最后,我们一定要关闭缓冲流,这样才能写入。

//刷新缓冲区
bw3.flush();
//关闭流
br.close();
br2.close();
bw3.close();

成品代码

package IoDemo;
import java.io.*;
public class TwoFile {
    public static void main(String[] args) {
        try {
            //1.txt字符输入流与字符缓冲输入流
            FileReader fr = new FileReader("D:\\1.txt");
            BufferedReader br = new BufferedReader(fr);
            //2.txt字符输入流与字符缓冲输入流
            FileReader fr2 = new FileReader("D:\\2.txt");
            BufferedReader br2 = new BufferedReader(fr2);
            //3.txt字符输出流与字符缓冲输出流
            FileWriter fw3 = new FileWriter("D:\\3.txt");
            BufferedWriter bw3 = new BufferedWriter(fw3);
            //读取1.txt文件内容
            String line = br.readLine();
            while (line != null) {
                bw3.write(line);
                bw3.newLine();
                line = br.readLine();
            }
            //读取2.txt文件内容
            String line2 = br2.readLine();
            while (line2 != null) {
                bw3.write(line2);
                bw3.newLine();
                line2 = br2.readLine();
            }
            //刷新缓冲区
            bw3.flush();
            //关闭流
            br.close();
            br2.close();
            bw3.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

输出一下3.txt,如下:

网络异常,图片无法展示
|

相关文章
|
2月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
139 14
|
2月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
|
2月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
114 0
|
3月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
278 5
|
3月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
190 0
|
6月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
6月前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
225 23
|
7月前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
282 34
|
7月前
|
存储 算法 Java
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
|
7月前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
164 4

热门文章

最新文章