java处理txt文件
我想处理两个txt文件,一个中包含序列号+用户名,例如1E0000023,张三;1E0000024,李四等等,另个文件包含人员编号+用户名,例如00001,张三;0000...
我想处理两个txt文件,一个中包含序列号+用户名,例如1E0000023,张三;1E0000024,李四等等,另个文件包含人员编号+用户名,例如00001,张三;00002,李四,怎样将两个文件根据用户名进行匹配录入到一个新的文件,就像这样:1E0000023,00001,张三,请给出相应注释,谢谢,急用!~!~!
展开
4个回答
展开全部
分别读取两个文件
String[] s1 = new String[] { "1,admin", "2,manager", "3,qyi" };//假设这是第一个文件
String[] s2 = new String[] { "SN222,admin", "SN33,manager","SN0982,qyi" };//第二个文件的内容
List<String> l = new ArrayList<String>();//比较组合后的结果集
for (int i = 0; i < s1.length; i++) {//取第一文件的每一个对象与第二文件的每一个对象
String[] ss1 = s1[i].split(",");
for (int j = 0; j < s2.length; j++) {
String[] ss2 = s2[j].split(",");
if(ss2[1].equals(ss1[1])){//根据用户名进行比较,如果相同的话就进行字符串拼接,然后放到结果集当中,
l.add(ss1[0]+","+ss2[0]+","+ss1[1]);
continue;//跳出内循环
}
}
}
for(String s : l){//打印结果集(可以在这里将结果集写入到新的文件当中去)
System.out.println(s);
}
String[] s1 = new String[] { "1,admin", "2,manager", "3,qyi" };//假设这是第一个文件
String[] s2 = new String[] { "SN222,admin", "SN33,manager","SN0982,qyi" };//第二个文件的内容
List<String> l = new ArrayList<String>();//比较组合后的结果集
for (int i = 0; i < s1.length; i++) {//取第一文件的每一个对象与第二文件的每一个对象
String[] ss1 = s1[i].split(",");
for (int j = 0; j < s2.length; j++) {
String[] ss2 = s2[j].split(",");
if(ss2[1].equals(ss1[1])){//根据用户名进行比较,如果相同的话就进行字符串拼接,然后放到结果集当中,
l.add(ss1[0]+","+ss2[0]+","+ss1[1]);
continue;//跳出内循环
}
}
}
for(String s : l){//打印结果集(可以在这里将结果集写入到新的文件当中去)
System.out.println(s);
}
展开全部
本身就有问题,怎么能用姓名来匹配呢,同名的人很多。
你现在的问题是不知道如何匹配还是不知道技术上如何解决呢?
正常情况就是读取列个文本文件到缓存中,再缓存中进行遍历匹配,然后进行保存。
你现在的问题是不知道如何匹配还是不知道技术上如何解决呢?
正常情况就是读取列个文本文件到缓存中,再缓存中进行遍历匹配,然后进行保存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class WriterOrReaderTxt {
// 写文件
private void writerTxt() {
BufferedWriter fw = null;
try {
File file = new File("D://text.txt");
fw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8")); // 指定编码格式,以免读取时中文字符异常
fw.append("我写入的内容");
fw.newLine();
fw.append("我又写入的内容");
fw.flush(); // 全部写入缓存中的内容
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// 读文件
private void readTxt() {
String filePath = WriterOrReaderTxt.class.getResource("").getPath().replace("file:", "")
+ "/test.txt"; // 文件和该类在同个目录下
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8")); // 指定读取文件的编码格式,要和写入的格式一致,以免出现中文乱码,
String str = null;
while ((str = reader.readLine()) != null) {
System.out.println(str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class WriterOrReaderTxt {
// 写文件
private void writerTxt() {
BufferedWriter fw = null;
try {
File file = new File("D://text.txt");
fw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8")); // 指定编码格式,以免读取时中文字符异常
fw.append("我写入的内容");
fw.newLine();
fw.append("我又写入的内容");
fw.flush(); // 全部写入缓存中的内容
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// 读文件
private void readTxt() {
String filePath = WriterOrReaderTxt.class.getResource("").getPath().replace("file:", "")
+ "/test.txt"; // 文件和该类在同个目录下
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8")); // 指定读取文件的编码格式,要和写入的格式一致,以免出现中文乱码,
String str = null;
while ((str = reader.readLine()) != null) {
System.out.println(str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Test {
public static void main(String[] args) throws IOException {
MyFileReader fl = new MyFileReader("data1.txt");
Map<String, String> map1 = fl.getFileContext();
MyFileReader f2 = new MyFileReader("data2.txt");
Map<String, String> map2 = f2.getFileContext();
Set<String> keySet1 = map1.keySet();
Iterator ite = keySet1.iterator();
while(ite.hasNext()){
String key1 = (String) ite.next();
String serial = map2.get(key1);
String outContent = map1.get(key1) + ", " + (serial == null? "": serial) + ", " + key1;
System.out.println(outContent);
}
//TODO: to write to new file
}
}
class MyFileReader{
private String file = null;
public MyFileReader(String fileName){
this.file = fileName;
}
public Map<String, String> getFileContext() throws IOException{
List<String> list = new ArrayList<String>();
FileReader fl = new FileReader(new File(file));
BufferedReader bf = new BufferedReader(fl);
String context = null;
do{
context = bf.readLine();
if(context == null || context.equals("")){
break;
}
list.add(context.replace(';', ' ').trim());
}while(context != null );
Map<String, String> map = new HashMap<String, String>();
for(String item: list){
String[] ary = item.split(",");
map.put(ary[1], ary[0]);
}
return map;
}
}
--------------
1E0000023, 00001, zhangsan
1E0000024, 00002, Lisi
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Test {
public static void main(String[] args) throws IOException {
MyFileReader fl = new MyFileReader("data1.txt");
Map<String, String> map1 = fl.getFileContext();
MyFileReader f2 = new MyFileReader("data2.txt");
Map<String, String> map2 = f2.getFileContext();
Set<String> keySet1 = map1.keySet();
Iterator ite = keySet1.iterator();
while(ite.hasNext()){
String key1 = (String) ite.next();
String serial = map2.get(key1);
String outContent = map1.get(key1) + ", " + (serial == null? "": serial) + ", " + key1;
System.out.println(outContent);
}
//TODO: to write to new file
}
}
class MyFileReader{
private String file = null;
public MyFileReader(String fileName){
this.file = fileName;
}
public Map<String, String> getFileContext() throws IOException{
List<String> list = new ArrayList<String>();
FileReader fl = new FileReader(new File(file));
BufferedReader bf = new BufferedReader(fl);
String context = null;
do{
context = bf.readLine();
if(context == null || context.equals("")){
break;
}
list.add(context.replace(';', ' ').trim());
}while(context != null );
Map<String, String> map = new HashMap<String, String>();
for(String item: list){
String[] ary = item.split(",");
map.put(ary[1], ary[0]);
}
return map;
}
}
--------------
1E0000023, 00001, zhangsan
1E0000024, 00002, Lisi
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询