Java阅读文本文件中的前2行

时间:2012-06-20 23:58:19

标签: java text-files

说我有这样的文本文件。有谁知道如何区分标题和评论,使我能够将其存储在数据库中?谢谢!

编辑:长示例截断)

  

忘记

     

Danielo2k12:我同意SimmsMolly,我就像他一样寻找jin   在锯木机后跳了进去然后没有他的迹象,主要是进入更多   关于在舱口的会议的详细信息和关于木筏的更多信息   还值得一看:D

     

小队

     巴尔维里奥:是的,嗯,这是对“敌人”的扯断,但那   电影更好。 6/10

     

家庭电影

     

SmittShow:不要浪费你的时间1/5

     

丝绸

     

Tlcprn:这是一个很好的系列!期待玛莎会做什么   她可以。当她发现时,她会对结果感到非常沮丧   布兰登发生了什么事。迫不及待地想看看她在店里有什么   为Farr家庭!爱,爱玛莎!

     齐牟淼姬吴福兴

     

quickmaster:最好的电影!!!

     

我看到了太阳 - (Günesigördüm)

     

RuruLover:这里没有任何链接......

     

渴望改变

     joanofjamaica:我想看到这么糟糕,但我看不到任何一个   这些链接

     

牢不可破

     

ventu_rabbit:这是一部有趣的电影,很长时间用于悬念,但我   不要以为这是一部像所有人一样聪明,发人深省的电影   这些评论说。我想如果你寻找隐藏的东西   线条足够长,你会发现它。这是一部普通的惊悚片,   没有什么令人兴奋的......等等....

1 个答案:

答案 0 :(得分:1)

你可能会从这样的事情开始。只需逐行阅读。标题,空白行,作者和评论,空白行。拆分作者和评论。

public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new FileReader(new File("C:\\Users\\wattsj\\workspace\\youtube\\src\\main\\resources\\cc")));
    while (readReview(br));
}

private static boolean readReview(BufferedReader br) throws IOException {
    String title = getNextLine(br);
    if (title == null) {
        return false;
    }
    String commentWithAuthor = getNextLine(br);
    if (commentWithAuthor == null) {
        throw new RuntimeException("Title but end of file before author");
    }
    String[] commentAndAuthor = commentWithAuthor.split(" : ", 2);
    if (commentWithAuthor.length() < 2) {
        throw new RuntimeException("Author but no comment found on the same line");
    }
    String comment = commentAndAuthor[0];
    String author = commentAndAuthor[1];
    System.out.println(title);
    System.out.println(comment);
    System.out.println(author);
    return true;
}

private static String getNextLine(BufferedReader br) throws IOException {
    String line;
    if ((line = br.readLine()) == null) {
        return null;
    }
    if (!"".equals(br.readLine())) {
        throw new RuntimeException("Expected a blank line");
    }
    return line;
}