【发布时间】:2015-11-12 09:43:18
【问题描述】:
我需要实现方法 public static void filter(Reader mails, Reader groups, Writer users) 以这样的方式将两条数据从 reader 合并到一个 writer。
邮件文件:
Login;Email
#ivanovjti;ivanov@mail.com
petrovjti;petrov@google.com
obamajti;obama@yahoo.com
以及组文件:
Login;Group
ivanovjti;Java1
petrovjti;Java2
obamajti;Java1
合并的结果应该是这样的:
Login;Email;Group
#ivanovjti;ivanov@mail.com;Java1
petrovjti;petrov@google.com;Java2
obamajti;obama@yahoo.com;Java1
我的代码:
package homework_4;
import java.io.*;
public class Main {
public static void filter(Reader mails, Reader groups, Writer users) throws IOException {
BufferedReader brm = new BufferedReader(mails);
BufferedReader brg = new BufferedReader(groups);
BufferedWriter bru = new BufferedWriter(users);
String m = brm.readLine();
String g = brg.readLine();
while (m != null && g != null) {
bru.write(m + ";" + g.split(";")[1] + "\n");
m = brm.readLine();
g = brg.readLine();
}
bru.flush();
}
public static void main(String[] args) throws FileNotFoundException, IOException{
FileReader frm = new FileReader("homework_4_1.txt");
FileReader frg = new FileReader("homework_4_2.txt");
FileWriter fwu = new FileWriter("homework_4_3.txt");
filter(frm, frg, fwu);
frm.close();
frg.close();
fwu.close();
}
}
但我有一个条件。如果文件邮件或文件组包含符号“#”,则合并结果应如下所示:
Login;Email;Group
petrovjti;petrov@google.com;Java2
obamajti;obama@yahoo.com;Java1
我不知道怎么做。哪个方法检查这个特殊符号?
【问题讨论】:
-
"homework_4_1.txt""homework_4_2.txt""homework_4_3.txt"--嗯... -
homework_4_1 包含邮件。 homework_4_2 包含组。 homework_4_3 包含用户。
-
只要观察你刚刚读到的字符串,如果其中一个以
#开头,则继续下一次阅读。 -
好的。但这是怎么做到的?)
标签: java merge bufferedreader filereader