如何将文本文件数据从一个类传递到另一个类

时间:2018-04-22 20:08:09

标签: java

我正在尝试创建一个程序来读取文本文件,然后输出有关文本文件的统​​计信息。我一开始就陷入困境。在这个任务中,我们被告知我们只需要在一个类中使用扫描器读取并创建“令牌”以便在其他类中进行计算。我不完全确定如何做到这一点。到目前为止,这是我在一个类中读取文件的代码:

private String s;
public void analyzeBookText(Scanner input) {
   while(input.hasNext()) {
       input.useDelimiter(".|!|?");
       s = input.next();
       if(input.next().equals("$$$END$$$")) {
           break;
       }
   }
}
public String getS() {
    return s;
}

所以我的字符串只是一个句子。然后我试图通过创建一个String实例变量和这个构造函数来访问不同类中的s:

 public SentenceTally() {
    BookMain sentence = new BookMain();
        s = sentence.getS();
}

但是,当我尝试在其他方法中使用s时,我收到stackoverflow错误。如何在另一个类的方法中正确使用扫描仪中的数据?谢谢!

1 个答案:

答案 0 :(得分:0)

你到了一半。接下来,您需要的是读取文本文件并将其存储到数组中。由于你的学校提到了令牌,你可以从文本文件中逐行阅读,然后将每行(如果你的数据文件只有一行,然后只是将这一行数据标记)分成标记(表示为数组):

String[] tokens = line.split(delimiter);

您可能需要先将标记转换为int数组或双数组,然后再将其用于计算。

将令牌数组作为参数传递给您的其他计算方法:

public void calculate(int[] tokens){
    //your calculations in Java
}

将数据传递给其他类:

BookMain book = new BookMain();  
book.analyzeFile(yourScanner);

SomeClass c = new SomeClass();
c.calculate(book.getTokens());        //create a getter for tokens in BookMain first