【问题标题】:sorting lines using arrayList使用 arrayList 对行进行排序
【发布时间】: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();给你什么?

标签: java sorting arraylist


【解决方案1】:

在退出程序之前关闭 fw1 或在缓冲区内容被刷新之前从内存中删除。

【讨论】:

  • 谢谢你 OMFG 这样一个愚蠢的错误谢谢
猜你喜欢
  • 2016-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多