【问题标题】:How to load a text file from classpath to a String[] in Java如何将文本文件从类路径加载到 Java 中的 String[]
【发布时间】:2017-03-08 14:10:51
【问题描述】:

我正在尝试将文本文件中的内容读取到字符串。在 Netbeans IDE 中一切正常,但如果我编译没有任何效果。

这是我的代码:

private String[] getSplashes(String Name) {
    String[] sp = null;
    try {
        String content = new Scanner(new File(getClass().getResource(Name).getFile())).useDelimiter("\\Z").next();
        sp = content.split(";");
    } catch (IOException ex) {
    }
    return sp;
}

这是我得到的例外:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jumpover.MenuDrawing.getRandomSplash(MenuDrawing.java:51)
    at jumpover.MenuDrawing.<init>(MenuDrawing.java:47)
    at jumpover.JOFrame.<init>(JOFrame.java:18)
    at jumpover.JOFrame.lambda$main$0(JOFrame.java:46)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

我不知道自己做错了什么!

【问题讨论】:

标签: java string file


【解决方案1】:

使用 getClass().getResourceAsStream(Name)

而不是

new File(getClass().getResource(Name).getFile())

最后你得到:

String content = new Scanner(getClass().getResourceAsStream(Name)).useDelimiter("\\Z").next();

将资源作为文件访问总是一个坏主意,因为资源可以在 JAR 文件中,因此不能作为公共文件直接访问。但是,如果您以流的形式访问它,则始终可以访问它。

【讨论】:

【解决方案2】:

如果你生成一个 jar 文件,你必须将 txt 文件放在与 jar 文件夹相同的文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 2016-05-23
    • 2016-08-09
    • 2019-03-15
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多