【发布时间】:2013-11-06 21:13:07
【问题描述】:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class part2
{
@SuppressWarnings("resource")
public static void main(String[] args) throws IOException
{
File f1 = new File("one.txt");
File f2 = new File("two.txt");
BufferedReader fr1 = null;
BufferedReader fr2 = null;
//BufferedReader fr3 = null;
BufferedWriter fw = null;
fr1 = new BufferedReader(new FileReader("one.txt"));
fr2 = new BufferedReader(new FileReader("two.txt"));
fw = new BufferedWriter(new FileWriter("res.txt"));
String line1 = fr1.readLine();
String line2 = fr2.readLine();
// merging two files into one
while (line1 != null)
{
fw.write(line1);
fw.newLine();
line1 = fr1.readLine();
}
while (line2 != null)
{
fw.write(line2);
fw.newLine();
line2= fr2.readLine();
}
fw.close();
// sorting a new file
BufferedReader fr3 = null;
BufferedWriter fw1 = null;
fw1 = new BufferedWriter(new FileWriter("res1.txt"));
fr3 = new BufferedReader(new FileReader("res.txt"));
String line3 = fr3.readLine();
ArrayList<String> lineList = new ArrayList<String>();
while (line3 != null)
{
lineList.add(line3);
line3 = fr3.readLine();
}
Collections.sort(lineList);
for(int i=0; i<lineList.size(); i++)
{
fw1.write(lineList.get(i) + "\n");
//line3 = fr3.readLine();
}
}
}
我正在尝试将两个文件合并到“res.txt”中,然后按字母顺序对合并后的文件进行排序(并将排序后的行放在“res1.txt”中)。一切正常,直到排序,确切地说是 while (line3 != null) 行,即它读取并合并两个文件,但不对它们进行排序。有什么想法吗?
【问题讨论】:
-
有什么问题?
-
究竟是什么不起作用?发布代码并说“任何想法”是没有用的。程序是否真的从文件中读取数据?
-
在尝试打开之前尝试将缓冲写入器关闭到 res.txt。操作系统可能没有打开文件进行读取,因为它打开了写入
-
paddy,它在排序之前一直有效,即读取和合并两个文件,但是当我尝试对行进行排序时不做任何事情。 Jamil,我已经用 fw.close();排序前
-
抱歉,一定是漏掉了那一行。你能看看你是否第一次调用 String line3 = fr3.readline();给你什么?