作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将读取的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
有特定的用途。请参阅here和 here 。通常,您只需在必要时才将方法标记为 public
(用行话来说,这称为封装)。
对于您的问题 - 在 Load
类中,您可以将文件中的所有文本附加到 String
中,并添加 public
Load
中的 getter 方法将在调用时返回该方法。
将其添加到加载
的开头:
public class Load {
private String fileText;
// ... rest of class
并将此 getter 方法添加到 Load
类中。是的,您可以简单地将 fileText
标记为 public
,但这违背了面向对象编程的目的。
public getFileText(String aFileName){
return fileText;
}
最后,使用这个新方法来记录日志
。请注意,无需使用Object
。
private static void log(String line) {
System.out.println(line);
fileText += aObject;
}
现在可以通过调用method.getFileText()
将读取的文件放入主类中
关于java - 如何将变量从使用 Scanner 的类传递到主类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461855/
我是一名优秀的程序员,十分优秀!