【发布时间】:2016-10-13 10:40:19
【问题描述】:
我正在尝试制作一个程序,它将两个不同的文本文件合并到按升序排序的第三个文件中。这是这两个文件中的内容
文件 1:12 23 34 45 56 67 69 123 133
文件 2:4 5 10 20 35 44 100 130 150 160 180
这是我目前的代码:
try
{
FileReader file1=new FileReader("D://School//text1.txt");
Scanner scan = new Scanner(new File("D://School//text1.txt"));
ArrayList<Integer> values = new ArrayList<Integer>();
Collections.sort(values); //sorting the values
while(scan.hasNextInt()) values.add(scan.nextInt());
FileReader file2=new FileReader("D://School//text2.txt");
scan = new Scanner(new File("D://School//text2.txt"));
values = new ArrayList<>();
Collections.sort(values); //sorting the values.
while(scan.hasNextInt()) values.add(scan.nextInt());
BufferedReader br1 = new BufferedReader (file1);
BufferedReader br2 = new BufferedReader(file2);
String temp1 = "";
String temp2 = "";
while(br1.readLine() !=null)
{
temp1=br1.readLine()+temp1;
}
while(br2.readLine()!=null)
{
temp2=br2.readLine()+temp2;
}
String temp = temp1 + temp2;
FileWriter fw=new FileWriter("D://School//text3.txt");
char buffer[]=new char[temp.length()];
temp.getChars(0,temp.length(),buffer,0);
fw.write(buffer);
file1.close();
file2.close();
fw.close();
}
catch (IOException e)
{
e.printStackTrace();
}
到目前为止,该程序将能够在第三个文件中读取和写入正确的内容,但是,它没有按升序对其进行排序。
这是程序将打印到第三个文件的内容
12 23 34 45 56 67 69 123 133 4 5 10 20 35 44 100 130 150 160 180
我希望它像这样将其排序到第三个文件中
4 5 10 12 20 23 34 35 44 45 56 67 69 100 123 130 133 150 160 180
提前致谢:)
【问题讨论】:
-
它不会打印到第三个文件,你说它会打印到它。我执行你的代码,第三个文件包含
nullnull。或者当我将所有数字换行时,它将包含null123674523null16013044205。 -
这让我想到一个问题:这些数字是全部在一行上,还是每个都在不同的行上?
-
将两个数据编号放在文本文件的第二行,它应该正确打印到第三行。此外,它打印到第三个文件中的数字都将在一行上。