Java选择文本文件并在函数中使用字符串

时间:2014-03-16 14:03:00

标签: java swing netbeans applet

我更新了代码,但它在

中引发了一个新错误
List<String> temps = new LinkedList<String>();

错误是:

  

错误:类型列表不带参数            列表temps = new LinkedList();

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         


    if (selectedFile == null) {
    return;  // no file selected. Get out of here
  }
  String token1 = "";
  Scanner inFile1 = null;
  try {
    inFile1 = new Scanner(selectedFile);

     List<String> temps = new LinkedList<String>();
    // while loop
    while(inFile1.hasNext()){

        // find next line
        token1 = inFile1.next();

        // initialize temps
        temps.add(token1);
    }

    // close inFile1
    inFile1.close();

    // create array
    String[] tempsArray = temps.toArray(new String[0]);

    // for-each loop
     String  ArabicWord="";
    for(String s : tempsArray){ 

        ArabicWord = ArabicWord + " " + s;

    }
          String finalResult="";
 for (String retval: ArabicWord.split(" ")){
          ArabicStemmer Stemmer=new ArabicStemmer();
         finalResult= finalResult + " " +  String.valueOf(Stemmer.stemWord(retval));
                 }


 jTextArea1.setText(finalResult);



  }
  catch (FileNotFoundException e) {
    e.printStackTrace();
    return;
  }


    }   

1 个答案:

答案 0 :(得分:1)

我可以为我的班级提供所选文件的文件字段,比如称为选定文件:

private File selectedFile = null;

然后在第一个动作侦听器中,为该字段分配一个值:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   JFileChooser chooser=new JFileChooser();
   int returnVal = chooser.showOpenDialog(null);
   if (returnVal == JFileChooser.APPROVE_OPTION) {
     selectedFile = chooser.getSelectedFile();
     String filename=F.getName();
     jTextField1.setText(filename);
   }
} 

然后在下一位代码中使用selectedFile。 Java抱怨您尝试在不捕获异常的情况下初始化扫描程序,因此您应该遵循错误消息的建议:捕获您的异常。

例如:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  if (selectedFile == null) {
    return;  // no file selected. Get out of here
  }
  String token1 = "";
  Scanner inFile1 = null;
  try {
    inFile1 = new Scanner(selectedFile);
  } catch (FileNotFoundException e) {
    e.printStackTrace();
    return;
  }

  // .....

你绝对需要阅读一两篇关于如何处理异常的教程。 Google会帮您找到这些。


修改
您在评论中说明:

  

错误:类型List不带参数List temps = new LinkedList();

我担心这可能是由于您导入java.awt.*。如果你的代码有这一行:

import java.awt.*;

删除它,因为您将编译器混淆为您尝试使用的List类型。您正在尝试使用java.util.List,但编译器可能认为您使用的是java.awt.List。解决此问题的最佳方法是导入您正在使用的特定awt类,而不是使用通配符*进行导入。有时您必须完全放弃导入,只需在代码中使用完全指定的类名。例如,有时您必须走这条路线:

java.util.List<String> myList = new java.util.LinkedList<String>();