使用arrayList对行进行排序 导入java.io.BufferedReader; 导入java.io.BufferedWriter; 导入java.io.File; 导入java.io.FileReader; 导入java.io.FileWriter; 导入java.io.IOException; 导入java.util.ArrayList; 导入java.util.Collections; 导入java.util.List; 公共课第2部分 { @抑制警告(“资源”) 公共静态void main(字符串[]args)引发IOException { 文件f1=新文件(“一个.txt”); 文件f2=新文件(“两个.txt”); BufferedReader fr1=null; BufferedReader fr2=null; //BufferedReader fr3=null; BufferedWriter fw=null; fr1=新的BufferedReader(新的文件读取器(“one.txt”); fr2=新的BufferedReader(新的文件读取器(“two.txt”); fw=新的缓冲写入程序(新的文件写入程序(“res.txt”); 字符串line1=fr1.readLine(); 字符串line2=fr2.readLine(); //将两个文件合并为一个文件 while(第1行!=null) { fw.write(第1行); fw.newLine(); line1=fr1.readLine(); } while(第2行!=null) { fw.write(第2行); fw.newLine(); line2=fr2.readLine(); } fw.close(); //对新文件进行排序 BufferedReader fr3=null; BufferedWriter fw1=null; fw1=新的缓冲写入程序(新的文件写入程序(“res1.txt”); fr3=新的BufferedReader(新的文件读取器(“res.txt”); 字符串line3=fr3.readLine(); ArrayList lineList=新建ArrayList(); while(第3行!=null) { lineList.add(第3行); line3=fr3.readLine(); } Collections.sort(行列表); 对于(int i=0;i
在退出程序之前关闭fw1,或者在刷新缓冲区内容之前将其从内存中删除。有什么问题?什么不起作用?发布代码并说“有什么想法”没有用。程序是否确实从文件中读取数据?在尝试打开它之前,请尝试将bufferedwriter关闭为res.txt。可能操作系统没有打开文件进行读取,因为它是为写入而打开的。Paddy,它会一直工作到排序,即读取和合并两个文件,但在尝试对lin进行排序时不会执行任何操作es.Jamil,在排序之前,我已经用fw.close()完成了。抱歉,一定错过了那一行。你能看到你第一次调用字符串line3=fr3.readline();是否给你带来了什么吗?谢谢你,天哪,这是一个愚蠢的错误,谢谢使用arrayList对行进行排序 导入java.io.BufferedReader; 导入java.io.BufferedWriter; 导入java.io.File; 导入java.io.FileReader; 导入java.io.FileWriter; 导入java.io.IOException; 导入java.util.ArrayList; 导入java.util.Collections; 导入java.util.List; 公共课第2部分 { @抑制警告(“资源”) 公共静态void main(字符串[]args)引发IOException { 文件f1=新文件(“一个.txt”); 文件f2=新文件(“两个.txt”); BufferedReader fr1=null; BufferedReader fr2=null; //BufferedReader fr3=null; BufferedWriter fw=null; fr1=新的BufferedReader(新的文件读取器(“one.txt”); fr2=新的BufferedReader(新的文件读取器(“two.txt”); fw=新的缓冲写入程序(新的文件写入程序(“res.txt”); 字符串line1=fr1.readLine(); 字符串line2=fr2.readLine(); //将两个文件合并为一个文件 while(第1行!=null) { fw.write(第1行); fw.newLine(); line1=fr1.readLine(); } while(第2行!=null) { fw.write(第2行); fw.newLine(); line2=fr2.readLine(); } fw.close(); //对新文件进行排序 BufferedReader fr3=null; BufferedWriter fw1=null; fw1=新的缓冲写入程序(新的文件写入程序(“res1.txt”); fr3=新的BufferedReader(新的文件读取器(“res.txt”); 字符串line3=fr3.readLine(); ArrayList lineList=新建ArrayList(); while(第3行!=null) { lineList.add(第3行); line3=fr3.readLine(); } Collections.sort(行列表); 对于(int i=0;i,java,sorting,arraylist,Java,Sorting,Arraylist,在退出程序之前关闭fw1,或者在刷新缓冲区内容之前将其从内存中删除。有什么问题?什么不起作用?发布代码并说“有什么想法”没有用。程序是否确实从文件中读取数据?在尝试打开它之前,请尝试将bufferedwriter关闭为res.txt。可能操作系统没有打开文件进行读取,因为它是为写入而打开的。Paddy,它会一直工作到排序,即读取和合并两个文件,但在尝试对lin进行排序时不会执行任何操作es.Jamil,在排序之前,我已经用fw.close()完成了。抱歉,一定错过了那一行。你能看到你第一次调用字
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();
}
}
}