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 将不同文件下的相同多级目录下文件内容,合并到一个新的文件夹中,建立对应多级目录的主要内容,如果未能解决你的问题,请参考以下文章