我正在尝试制作一个java程序,接受来自用户提供的文件的输入。然后,扫描器将扫描java代码文件并识别所有代码标记,并将它们列为用户的输出。在无效令牌的情况下,扫描器应该提到给定的令牌是无效的…这是我的代码,我在netbeans中工作。
package javaapplication3;
import java.io.*;
import java.util.Scanner;
import java.util.StringTokenizer;
/**
*
* @author Hameed
*/
public class JavaApplication3 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws FileNotFoundException, IOException {
FileReader fin = new FileReader("myfile.java");
Open(fin);
BufferedReader br= new BufferedReader(fin);
String s;
s=br.readLine();
StringTokenizer st = new StringTokenizer(s, "[ =+';().*{}[],!@#$%^&/]", true);
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
但是当我运行时出现错误,这里是图片http://s17.postimg.org/jlj18yefj/Untitled.jpg在扫描器中实现代码,而myfile.java在JavaApplication3文件夹中,如果不是,那么请指导我在哪里存储此文件是正确的吗?
你必须检查工作目录,
右键单击"项目>属性>运行>工作目录"
这里是你程序搜索file.txt的地方。
通过使用new FileReader("myfile.java")
,您指定了一个相对路径。在这种情况下,假设文件位于类路径中,您应该这样做:
Reader reader = new InputStreamReader(JavaApplication3.class.getResourceAsStream("myfile.java"));
BufferedReader br = new BufferedReader(reader);
另一种方法是在创建FileReader
时指定文件的绝对路径,例如:
FileReader fin = new FileReader("C:\myfile.java");