如何将读取的txt文件放入主类?

//main class
public class mainClass {

public static void main(String[]args) {
    load method = new load("Monster");
}
}





//scanner class

public class load {

  public static void loader(String... aArgs) throws FileNotFoundException {
    load parser = new load("resources/monsters/human/humanSerf.txt");
    parser.processLineByLine();
    log("Done.");
  }

  public load(String aFileName){
    fFile = new File(aFileName);
  }

  public final void processLineByLine() throws FileNotFoundException {
    //Note that FileReader is used, not File, since File is not Closeable
    Scanner scanner = new Scanner(new FileReader(fFile));
    try {
      //first use a Scanner to get each line
      while ( scanner.hasNextLine() ){
        processLine( scanner.nextLine() );
      }
    }
    finally {

      scanner.close();
    }
  }

  public void processLine(String aLine){
    //use a second Scanner to parse the content of each line
    Scanner scanner = new Scanner(aLine);
    scanner.useDelimiter("=");
    if ( scanner.hasNext() ){
      String name = scanner.next();
      String value = scanner.next();
      log("Stat is : " + quote(name.trim()) + ", and the value is : " + quote(value.trim()) );
    }
    else {
      log("Empty or invalid line. Unable to process.");
    }
  }

  public final File fFile;

  public static void log(Object aObject){
    System.out.println(String.valueOf(aObject));
  }

  public String quote(String aText){
    String QUOTE = "'";
    return QUOTE + aText + QUOTE;
  }
}


如果要从文件中获取文本,我应该从主类调用哪种方法,以及从该方法返回哪些变量。如果有人拥有可以帮助我学习扫描仪的网站(了解互联网的源代码,并且只能从JavaPractises和sun教程中了解它),那将很棒。谢谢

最佳答案

首先,您可能要遵循标准Java naming conventions-使用public class MainClass而不是mainClass

其次,对于您的方法,public具有特定的用途。请参见herehere。通常,仅在必要时才将方法标记为public(用术语,这称为封装)。

对于您的问题-在Load类中,可以将文件中的所有文本附加到String,并在public中添加Load getter方法,该方法将在调用时返回。

Load的开头添加以下内容:

public class Load {
    private String fileText;
    // ... rest of class


并将此getter方法添加到Load类。是的,您可以简单地将fileText标记为public,但这违反了面向对象编程的目的。

public getFileText(String aFileName){
    return fileText;
}


最后,将此新方法用于log。请注意,不需要使用Object

private static void log(String line) {
    System.out.println(line);
    fileText += aObject;
}


现在,您可以通过调用method.getFileText()将读取的文件放入主类。

关于java - 如何将使用Scanner的类中的变量传递给主类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8461855/

10-12 01:31