/**
* 1、编写程序,将一个目录及其子目录下的所有 txt 类型的文本文件中的内容合并到若干个新的文本文件中,
* 当第一个新产生的文件存储的内容达到 1M 时,剩下的内容存储到第二个新的文件中,依次往下,
* 新产生的文本文件名依次为 1.txt、2.txt
* */
public class TestIO {
private static int number = 1;
public static void main(String[] args) {
List<String> result = new ArrayList<String>();
getFilePath("E:\\abc",result);
readToDest(result);
}
//得到路径下所有 txt文件的绝对路径
public static void getFilePath(String dirs,List<String> slist)
{
File dir =new File(dirs);
File[] files = dir.listFiles();
for(File f :files)
{
if(f.isFile() && f.getName().endsWith("txt"))
{
slist.add(f.getAbsolutePath());
}
else if(f.isDirectory())
{
getFilePath(f.getAbsolutePath(),slist);
}
}
}
public static void readToDest(List<String> src)
{
for(String dest : src)
{
String newFilePath = "D://ttt//" + number + ".txt";
File newFile = new File(newFilePath);
if(!newFile.exists())
{
try {
newFile.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 旧文件输入流
try {
FileInputStream fIn = new FileInputStream(new File(dest));
BufferedInputStream bIn = new BufferedInputStream(fIn);
// 新文件输出流
FileOutputStream fOut = new FileOutputStream(newFilePath, true);
BufferedOutputStream bOut = new BufferedOutputStream(fOut);
byte[] bytes = new byte[1024];
while (bIn.read(bytes) != -1) {
if (newFile.length() > 1024 * 1024) {
newFilePath = "D://ttt//" + ++number + ".txt";
newFile = new File(newFilePath);
fOut = new FileOutputStream(newFilePath);
bOut = new BufferedOutputStream(fOut);
bOut.write(bytes);
} else
{
bOut.write(bytes);
}
bOut.flush();
}
bIn.close();
bOut.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
Java IO流是Java编程语言中处理输入输出的重要组成部分,它为数据传输提供了高效且灵活的方式。在Java中,IO流可以分为两类:字节流(处理单个字节)和字符流(处理Unicode字符)。此外,它们又可以分为四大类:输入...
Java_IO总结.pdf Java_IO总结.pdf
7. **DataIO 和 ByteArrayIO(07_DataIO_and_ByteArrayIO.avi)**:DataInputStream和DataOutputStream用于读写基本数据类型,如int、float等。而ByteArrayInputStream和ByteArrayOutputStream则允许在内存中操作...
本资源“java_io.rar”提供了关于如何在Java中进行文件操作的示例代码,包括读取、移动、删除和复制文件等常见任务。我们将深入探讨这些主题,以便更好地理解Java I/O API的使用。 首先,让我们从读取本地文件开始...
java控制串口发送数据时在windows环境下正常,linux环境下报错C [librxtxSerial.so+0x75da] Java_gnu_io_RXTXPort_nativeDrain+0xea,经多方查询验证为rxtx包版本问题,用本文档中的版本可以正常运行
Java_IO流详解 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...
JAVA_IO流学习总结
JAVA_IO流整理思维导图.
该文件用于解决通过java控制串口发送数据给时在Linux...报错内容如下: [librxtxSerial.so+0x75da] Java_gnu_io_RXTXPort_nativeDrain+0xea。经过一番研究得出结论为为rxtx包版本问题,使用本文档中的版本即可正常运行
Java IO(Input/Output)是Java编程语言中用于处理数据输入和输出的重要组成部分。这个压缩包文件"java_io.rar"包含了一些关于Java IO的实例,旨在帮助开发者理解并掌握Java中的输入输出技术。通过分析提供的文件...
Java_IO种各接口描述,File类,文件和目录操作
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序中实现数据的读写、流的管理和文件操作。在这个"java_IO学习代码"的压缩包中,我们很可能会...
Java IO系统主要包括两个包:`java.io`和`java.nio`(New IO),其中`java.io`提供了一系列基于流的I/O操作接口与实现类,而`java.nio`则提供了更高效的数据访问方式,如通道和缓冲区等。 Java IO系统的设计原则之...
在Java编程语言中,`IO`(Input/Output)和`NIO`(Non-blocking Input/Output)是处理数据输入和输出的关键技术。本压缩包包含`JAVA_IO/NIO(demo,压缩jar文件)`,意味着它提供了一些示例代码,用于演示如何使用这两...
Java IO流处理是Java编程中一个非常重要的概念,它用于在不同数据源之间传输数据,如文件、网络、内存等。在Java中,IO流分为两大类:输入流(Input Stream)和输出流(Output Stream),它们分别用于数据的读取和...
### Java IO详解 #### 1. 什么是IO 在计算机科学中,IO(Input/Output,输入/输出)指的是程序与外部系统之间进行数据交换的过程。在Java中,IO操作主要通过`java.io`包来实现,这个包包含了用于文件读写、标准...
### Java IO 概述 Java 输入/输出 (IO) 是所有程序开发中不可或缺的一部分,它主要涉及如何在程序和外部资源之间传输数据。Java 的 IO 包含多种类和接口,用于处理各种输入输出需求,如文件读写、网络通信等。 ###...
Java IO完全总结的知识点: 一、历史背景: 1. IO系统设计的困难性:对于编程语言设计人员来说,设计一个功能完善的输入输出系统是非常有挑战性的。需要考虑各种不同的因素,如文件、控制台、网络、内存等的读取方式...