当前位置:编程学习 > JAVA >>

求大牛写几段代码

1.假设有一个txt文档 里面内容为一些文件的完整目录 ,求找出里面出现重复的目录
2.假设有一个txt文档 里面内容为一些文件的完整目录,根据目录获取文件,如何在那些文件内容尾部批量加上一些空格进行批量修改

--------------------编程问答-------------------- = =求大神协助  --------------------编程问答-------------------- 不会请顶起此贴          --------------------编程问答-------------------- --------------------编程问答-------------------- 太难了,完全超出我的能力范围。 --------------------编程问答-------------------- 文本文件里每行一个目录的话,很简单,直接读文件内容然后比较字符串就好。第二条的话也一样的。学习下java.io.*这个包就好了。 --------------------编程问答-------------------- = =求代码 说谁的会  --------------------编程问答-------------------- 说很容易实现很难的 求大牛协助  --------------------编程问答-------------------- 是每一行一个目录 --------------------编程问答-------------------- 睡觉前打完的,看了一下也有80多行呀。没有仔细测试不知道有BUG没
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class FindRepeatFile {

private List<String> loadTxt(String pathName) throws Exception{
File file = new File(pathName);
if(file.exists()) {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
List<String> list = new ArrayList<>();
String str = null;
while((str = br.readLine()) != null) {
list.add(str);
}
br.close();
return list;
}
return null;
}

private Set<String> getRepeatFile(List<String> list) {
if(list != null) {
Set<String> set = new HashSet<>();
for(int i=0; i<list.size(); i++) {
String str = list.get(i);
for(int j=i+1; j<list.size(); j++) {
if(str.equalsIgnoreCase(list.get(j))) {
set.add(str);
}
}
}
return set;
}
return null;
}

public final static String UPDATE_CONTENT = "hello world!";
private void updateFiles(List<String> list) throws Exception{
if(list == null)
return;
for(String l: list) {
File file = new File(l);
if(file.exists()) {
PrintStream out = new PrintStream(new FileOutputStream(file, true));
out.println(UPDATE_CONTENT);
out.close();
}
}
}

public Set<String> getRepeatFile(String pathName) {
try {
List<String> list = loadTxt(pathName);
return getRepeatFile(list);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

public void updateFiles(String pathName) {
try {
List<String> list = loadTxt(pathName);
updateFiles(list);
} catch (Exception e) {
// TODO: handle exception
}
}

public static void main(String[] args) {
FindRepeatFile frf = new FindRepeatFile();
// Set<String> set = frf.getRepeatFile("E:\\test\\aaaa.txt");
// for(String s: set) {
// System.out.println(s);
// }
frf.updateFiles("E:\\test\\aaaa.txt");
}
}
--------------------编程问答-------------------- (1)如果每个路径有结束符就好办,取一个路径装在Set集合里..去重复后再重新写入
(2)把文本内容搞到输入流,在输入流加几个空格,再重新写入. --------------------编程问答-------------------- 1)取出的每一行用Set.add方法放在set中,返回值是false说明有重复。
2)读文件再写文件。。。 --------------------编程问答-------------------- LZ根本就没有给出这个txt的格式,鬼知道你的txt是怎么写的,, --------------------编程问答-------------------- 1.第一个可以把目录获取用String引用,然后放到list中去,最后再次读取获取目录,然后去list 中比较
   不知可行否? --------------------编程问答-------------------- 你可以吧txt格式说明下,比如:c:/a.txt;c:/f1/a1.txt; --------------------编程问答-------------------- 这个不难吧 楼主应该自己动手 --------------------编程问答-------------------- --------------------编程问答-------------------- io流啊 读取判断就可以啦 --------------------编程问答-------------------- 一来,io流平常工作中用的不多,二来,你描述的不是很清楚,你的txt都是什么规则的内容没有说清楚
虽然,io读写操作是java的基础部分,所以我也只有用嘴说说了。

第一个要求,说白了就是字符串的拆分。java中的拆分无非就几个方法的组合应用。indexOf、substring、split等。
真对你的第一个找出重复的目录,我的思路会是先根据你txt内容规则进行拆分一下, 使用map取出重复,然后使用indexOf和lastIndexOf判读重复,出现的位置一样就是唯一的,否则就是有重复。

第二个要求,就是java读写文件,google一下代码,一大堆,甚至好多拷贝过来了就能用。根据拆分出来的目录读、写,在写入的结束时添加一点你自己的内容,这样就成了修改。

--------------------编程问答--------------------
http://bbs.csdn.net/topics/390483868
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,