我是java新手。我正在做以下事情:
从文件中读取,然后将数据放入变量。
我已将checkToken和lineToken声明为该类下的公共字符串。
public static void readFile(String fromFile) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fromFile));
String line = null;
while ((line=reader.readLine()) != null ) {
if (line.length() >= 2) {
StringTokenizer lineToken = new StringTokenizer (line);
checkToken = lineToken.nextToken();
processlinetoken()
......
但这是我遇到问题的地方。
public static void processlinetoken()
checkToken=lineToken.nextToken();
}
它失败了。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method nextToken() is undefined for the type String
at testread.getEngineLoad(testread.java:243)
at testread.readFile(testread.java:149)
at testread.main(testread.java:119)
那么如何才能让它发挥作用?它似乎传递了变量,但没有任何后续。的工作原理。
Eclipse IDE没有多大帮助“链接本地重命名的所有引用(不会更改 其他文件中的引用)“在文件中重命名是唯一的选择。它没有做任何事情。
答案 0 :(得分:2)
似乎lineToken
是String
而不是StringTokenizer
。您可能已将String lineToken
声明为您班级的属性,并且您计划使用它,但在readFile
方法中您指定给lineToken
一个new StringTokenizer()
,但您的定义是本地和阴影你正在做的那个。
您应该尝试从
中删除StringTokenizer
StringTokenizer lineToken = new StringTokenizer (line);
只是做
lineToken = new StringTokenizer(line);
答案 1 :(得分:0)
您正尝试在testread.java的第243行的字符串上调用nextToken()
。如果您使用的是IDE,它应该会向您显示问题。
答案 2 :(得分:0)
谢谢杰克。
我声明了一个公共静态String,但后来是readFile()中的StringTokenizer。因此,当调用ProcessLineToken()时,它正在查看null String变量,而不是在readFile()中声明的StringTokenizer。
我误解了StringTokenizer的使用。这是一种类型,而不是扩展。