/**
* 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_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解java_IO 详解
java_io学习java_io学习
Java_IO完全总结 Java_IO完全总结Java_IO完全总结 Java_IO完全总结
java_IO流的处理.ppt java_IO流的处理.ppt
Java_IO流详解Java_IO流详解Java_IO流详解
Java_IO总结.pdf Java_IO总结.pdf
java_IO操作_(读写、追加、删除、移动、复制等)
java_io流讲解.docx.zip java_io流讲解.docx.zip
JAVA_IO流学习总结
JAVA_IO操作总结——节点流和处理流.pdf JAVA_IO操作总结——节点流和处理流.pdf
java控制串口发送数据时在windows环境下正常,linux环境下报错C [librxtxSerial.so+0x75da] Java_gnu_io_RXTXPort_nativeDrain+0xea,经多方查询验证为rxtx包版本问题,用本文档中的版本可以正常运行
java_io_文件操作_复制_删除_移动_下载
《JAVA_IO流学习总结》
JAVA_IO流整理思维导图.
java_io.pdf
新版Java_IO精讲(推荐版)
Java_IO(输入输出) FileInputStream类、FileOutputStream类、FileReader类、FileWriter类、try{}catch(){}finally{}应用
一些java对文件的基础操作。收藏下来用的时候好查阅。
java_IO操作_(读写、追加、删除、移动、复制、修改)