从文件中提取单词

时间:2014-08-07 16:04:50

标签: java file

基本上我有一个包含常用挪威语单词的文件。单词以下列模式存储。

1.  jeg 782578
2.  det 742951
3.  er 718645
4.  du 623395
5.  ikke 436196

从左到右:第一个是列表编号,中间是我要提取和保存的单词,后跟数字计数。我想提取文档中没有数字列表或数字计数的单词。当然我可以手动完成,但列表很大,它包含5000个单词。所以我正在寻找一种使用Java来实现这一目标的有效方法。

基本上我只能用Java读写文件。因此,如果你有任何想法完成这项任务,我将不胜感激,如果你能与我分享。

4 个答案:

答案 0 :(得分:1)

有效地做这样的事情的技巧是要意识到你不需要将整个文件读入内存以便操纵它。您可以创建一个循环,一次读取一行输入,并执行创建一行输出所需的任何工作:

    Scanner scanner = new Scanner(new File("input.txt"));
    PrintWriter writer = new PrintWriter("output.txt");

    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();     // read a line from the input file
        writer.println(line.split(" ")[1]);   // write a line to the output file
    }

    scanner.close();
    writer.close();

这将允许您对任何大小的文件进行逐行修改。

答案 1 :(得分:0)

试试这样的事情。

BufferedReader br = new BufferedReader(new InputStreamReader(
                        new FileInputStream("pathOfYourTextFile/textFile.txt")));
PrintStream out = null;
while(true)
  {
   String line = br.readLine();
   if(line PrintStream out== null)
       break;
   else {
       String newline = line.replaceAll("-?\\d+.","").trim();
       out = new PrintStream(new FileOutputStream("outputFile.txt"));
       out.println(newline);
     }
   } 
 out.close();

在你问某事之前先尝试一下

答案 2 :(得分:-1)

虽然您知道编程并不总是尝试将该知识应用于每个上下文。 您可以使用逗号替换所有空格并将其另存为.csv文件。从excell或一些电子表格应用程序打开它。删除您不想要的列。保存回来

答案 3 :(得分:-1)

(抱歉还不能发表评论)

5000并不是那么大。 我假设你在窗户上。

你可以使用像Notepad ++这样的编辑器来搜索和替换使用正则表达式(你也可以在java中使用正则表达式)。 (这是Notepad ++的教程之一:http://markantoniou.blogspot.ca/2008/06/notepad-how-to-use-regular-expressions.html

或者“Thusitha Thilina Dayaratn”建议将文件导入Excel类型的程序。 在导入期间,您只需指定数据是空格/制表符分隔。