我正在尝试实现基本的词法分析器。目前,我在文件解析方面陷入困境。
public ArrayList<Token> ParseFile () {
int lineIndex = 0;
Scanner scanner = new Scanner(this.fileName);
while (scanner.hasNextLine()) {
lineIndex++;
String line = scanner.nextLine();
if (line.equals(""))
continue;
String[] split = line.split("\\s");
for (String s : split) {
if (s.equals("") || s.equals("\\s*") || s.equals("\t"))
continue;
Token token = new Token(s, lineIndex);
parsedFile.add(token);
}
}
scanner.close();
return this.parsedFile;
}
这是我的栏位,称为“ p ++。ppp”
#include<iostream>
using namespace std ;
int a ;
int b ;
int main ( ) {
cin >> a ;
cin >> b ;
while ( a != b ) {
if ( a > b )
a = a - b ;
if ( b > a )
b = b - a ;
}
cout << b ;
return 0 ;
}
解析文件时,我得到:Error, token: p++.ppp on line: 1 is not valid
但是p ++。ppp是文件名!
同样,当我调试时,它读取文件名,然后scanner.hasNextLine()
退出。我想念什么?
您误解了的API
Scanner
。从文档的Scanner(String)
构造函数:
构造一个新的Scanner,该扫描器生成从指定字符串扫描的值。
参数:
源 -一个字符串,扫描
这不是文件名-只是一个字符串。
您应该改用Scanner(File)
构造函数-或者更好的是,Scanner(File, String)
构造函数也要指定编码。例如:
try (Scanner scanner = new Scanner(new File(this.fileName), "UTF_8")) {
...
}
(请注意使用try-with-resources语句,以便扫描仪自动关闭。)
问题内容: 我正在玩Scanner类,以进行学习,并且我使用它来读取非常大的文件(大约60.000行,大约不使用Reader类),并且在大约400行后停止读取。我是否必须在Scanner的构造函数中使用Bufferedreader还是问题?我想知道为什么会这样。谢谢。我的代码是输出所有行的常用代码。 问题答案: 此问题通常在64位计算机上或文件大小大于1-2 GB的文件中更常见,并且与堆空间无关。
我试图通过使用命令“java postfix 错误: 请在java.util.scanner.throwfor(未知源) 在java.util.scanner.next(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.sca
问题内容: 我只想读取文本文件的第一行并将该第一行放在字符串数组中。 这就是我所拥有的,但是它读取了整个文件。 myTextFile中的ex文本: 问题答案: 如果我了解你,那
问题内容: 使用扫描程序对象从文本文件读取时,我希望它跳过文件的第一行。我将如何做到这一点? 问题答案: 只需在while循环之前使用即可。如JavaDoc中所述,这将跳过第一行。 还有关于您的命名的注释。Java语言具有广泛接受的约定。类名总是以大写字母开头,变量名总是以小写字母开头(常量除外,但现在不必担心)。在这里阅读更多。
问题内容: 我正在为具有许多Flash文件的网站制作Greasemonkey脚本。我想对闪存进行哈希处理,问题是闪存文件最大为10 MB。 这很慢;我希望只能获取要散列的前80KB。最终结果将是一种将某些包含有害内容的Flash文件列入黑名单的简便方法。我的脚本如何仅抓取文件的前80 KB(或大约80 KB)? 问题答案: 发送的头在你的AJAX请求。 例如: (对于与目标页面位于同一域中的文件。
实际上,我不确定是否有可能强制其他应用程序从返回所需字节的Java进程中读取文件,而不是从磁盘中读取文件,所以首先,这些信息可能会有所帮助。 你也可以忽略强迫的想法!我是否可以从我的java应用程序中打开其他应用程序,例如Adobe Acrobat Reader,并将字节注入其中,而不是单独打开它并用它读取pdf文件? 如果可能的话,有人能解释一下吗?我在网上搜索了太多,但没有找到答案。 你可能还