java 将不同文件下的相同多级目录下文件内容,合并到一个新的文件夹中,建立对应多级目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 将不同文件下的相同多级目录下文件内容,合并到一个新的文件夹中,建立对应多级目录相关的知识,希望对你有一定的参考价值。

java 将不同文件下的相同多级目录下文件内容,合并到一个新的文件夹中,建立对应多级目录,
新建文件,在新文件中写入合并内容,同时删除重复的行内容。
如:有文件夹A,B。将文件A、B两个文件夹中的所有内容(包含多级目录)合并到文件夹C中。若文件夹A中还有多级目录a1文件夹和文件a.txt文件,a1文件夹里有文件a1.txt;文件B中还有多级目录a1文件夹和文件a.txt文件、b.txt文件,a1文件夹里有文件a1.txt。将 A、B两个文件夹中的内容合并到文件夹C中,建立相应的多级目录a1文件夹和文件a.txt文件、b.txt文件,a1文件夹里有文件a1.txt,并将文件夹A中a.txt、a1.txt和文件夹B中a.txt、b.txt、a1.txt内容写到文件夹C所建立的对应a.txt、b.txt、a1.txt中,同时清除重复的行内容。

代码不写了,思路:
首先读取文件,依次读取所有目录,然后递归子目录,将所有目录下以a|b名称开头的文件内容分别按照行读取到a|b的ArrayList中,循环所有的ArrayList ,将每个内容都put到HashSet中去,这样,就得到你要的结果,最终输出到c目录下

当然,可以不读取到ArrayList中,直接put到HashSet,不过这样的话,就无法查找每个文件的原始内容。建议先分文件读取到多个ArrayList ,但不影响你的程序结果(可能会影响最终内容的顺序)
参考技术A 用到的类可能有:File,BufferedReader
File:检查文件或文件夹是否存在;创建文件或文件夹;列出当前目录下的所有文件和文件夹;
BufferedReader:关键有一个readLine()方法,一次读取一行。你的需求中说要删除相同行的内容,要用到这个。
具体的用法你看下API。本回答被提问者和网友采纳
参考技术B 读取文件,判断是否是文件夹 然后递归
读取文件(readLine),拿到文件信息 存储,循环判断去重
最后写入
参考技术C 你这个是要别人写代码的节奏吗???so easy的问题 参考技术D 自己看看API

将二级目录下的文件合并成一个文件的Python小脚本

这个小程序的目的是将二级目录下的文件全部合并成一个文件(其实几级目录都可以,只要做少许改动)

 1 #coding:utf8
 2 import sys, os
 3 
 4 def process(path):
 5     new_file = open("file_1", "a+")
 6     for secDir in os.listdir(path):
 7         for f in os.listdir(path + "/" + secDir):
 8             fin = open(path + "/" + secDir + "/" + f, "r")
 9             content = fin.readline()
10             while len(content) > 0:
11                 new_file.write(content)
12                 content = fin.readline()
13             fin.close()
14     new_file.close()
15 
16 if __name__ == "__main__":
17     process(sys.argv[1])

 

以上是关于java 将不同文件下的相同多级目录下文件内容,合并到一个新的文件夹中,建立对应多级目录的主要内容,如果未能解决你的问题,请参考以下文章

将二级目录下的文件合并成一个文件的Python小脚本

IO流的练习3 复制多级文件夹下的指定文件并改名

删除多级目录下的文件

Java一键批量替换掉文件夹以及子文件的名称

有两个目录,其中的有若干个文件,文件名相同但是内容可能不同。现在需要用shell脚本进行比对。

java如何查找指定目录下的最新文件