如果您想从jar文件中加载文件(例如,从classpath加载),请参阅此答案以获取有关如何获取的更多选项
InputStream。在下面的代码中,我没有进行任何异常处理,并删除了您的
Random相关代码。
public void close() { boolean loadFromClasspath = true; String fileName = "..."; // provide an absolute path here to be sure that file is found BufferedReader reader = null; try { if (loadFromClasspath) { // loading from classpath // see the link above for more options InputStream in = getClass().getClassLoader().getResourceAsStream("absolute/path/to/file/inside/jar/lol.txt"); reader = new BufferedReader(new InputStreamReader(in)); } else { // load from file system reader = new BufferedReader(new FileReader(new File(fileName))); } String line = null; while ( (line = reader.readLine()) != null) { // do something with the line here System.out.println("Line read: " + line); } } catch (IOException e) { JOptionPane.showMessageDialog(null,e.getMessage()+" for lol.txt","File Error",JOptionPane.ERROR_MESSAGE); } finally { if (reader != null) { reader.close(); } }}编辑:
似乎您在文件夹结构上做错了什么,或者您使用了错误的包/文件名。只是要清楚。目前,您似乎
main在一个
main程序包下有一个叫做的类。您的文件夹结构应如下所示:
+ src/ + main/ main.java lol.txt
编译时,应将您的lol.txt文件(顺便说一下,它们是小写的 L, 不是数字 1 正确吗?)应复制到
/bin/main/文件夹下
如果是这种情况,请使用如下代码:
InputStream in =getClass().getClassLoader().getResourceAsStream("main/lol.txt");如果您的文件夹结构不同,请进行相应的更改



