- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直试图了解问题到底是什么,但无论我做什么似乎都不起作用。我有一个文本文件,其中列出了名称和数字,并用冒号分隔。一个例子是:
Betty Ross:52
Angie Scotts:29
Michael Rosen:72
该列表很长,包含 10,000 多行。
public class PeopleIds {
public static int UNDEFINED_ID = -1;
private static HashMap<String, Integer> people;
public static void initialize() {
people = new HashMap<String, Integer>();
System.out.println(new File("res/ids/people_ids.txt").exists());
try {
Files.lines(Paths.get("res/ids/people_ids.txt")).forEach(s -> {
people.put(s.replaceAll(":.*", "").trim(), Integer.parseInt(s.replaceAll(".*:", "")));
});
} catch (IOException e) {
System.out.println("Unable to read specified file.");
e.printStackTrace();
}
}
public static int getId(final String name) {
final Integer id = people.get(name);
return id != null ? id : UNDEFINED_ID;
}
}
我从 GUIController
类调用 initialize
方法:
public class GUIController implements Initializable {
@FXML
private TableView<PersonData> personTable;
@FXML
private TableColumn<PersonData, String> name;
@FXML
private TableColumn<PersonData, Integer> limit;
@FXML
private TextField searchInput;
@FXML
private ImageView personIcon;
private Image undefinedIcon;
private PersonIcon icon;
private ObservableList<PersonData> data;
@Override
public void initialize(URL location, ResourceBundle resources) {
PeopleIds.initialize();
undefinedIcon = new Image(getClass().getResourceAsStream("/ids/no.png"));
name.setCellValueFactory(new PropertyValueFactory<PersonData, String>("name"));
limit.setCellValueFactory(new PropertyValueFactory<PersonData, Integer>("limit"));
data = PriceData.getData();
personTable.setPeople(data);
searchInput.textProperty().addListener((ov, oldValue, newValue) -> {
final String input = searchInput.getText();
if (input.length() == 0) return;
searchInput.setText(input.substring(0, 1).toUpperCase() + input.substring(1).toLowerCase());
filterSearch();
});
}
}
当我使用 PeopleIds.initialize()
从此类调用它时,会引发异常,告诉我应用程序启动方法中出现异常。
以下是完整记录的内容:
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException:
/C:/Confidential/bin/base/PersonGUI.fxml
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at base.PersonGUI.start(PersonGUI.java:13)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source)
... 1 more
Caused by: java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1
at java.io.BufferedReader$1.hasNext(Unknown Source)
at java.util.Iterator.forEachRemaining(Unknown Source)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
at base.PeopleIds.initialize(PeopleIds.java:17)
at base.GUIController.initialize(GUIController.java:36)
... 18 more
Caused by: java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
... 24 more
Exception running application base.PersonGUI
我不知道这是怎么回事?我研究过它,人们说将 fxml 文件(用于格式化内容并与 GUIController
链接到与 Main 类相同的包中,但是它已经是。
我已经为这个问题苦苦挣扎了好几天,但毫无结果。你们中有人有过处理这个问题的经验吗?如果是这样,你是如何解决的?非常感谢。
最佳答案
如果有Exception
在读取文件时(而不是打开文件时),会为 Files.lines
抛出未经检查的异常。流操作( Stream.forEach
没有 throws
子句)。
这发生在这里
Files.lines(Paths.get("res/ids/people_ids.txt")).forEach(s -> {
people.put(s.replaceAll(":.*", "").trim(), Integer.parseInt(s.replaceAll(".*:", "")));
});
,您可以在堆栈跟踪中轻松看到:
Caused by: java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1
(这是由于使用了错误的Charset
引起的,参见Files.readAllBytes vs Files.lines getting MalformedInputException)
你不会用 catch
捕获这种异常子句:
} catch (IOException e) {
您需要使用
} catch (Exception e) {
也可以捕获未经检查的异常。
关于JavaFX 从文件读取抛出 "InvocationTargetException"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352250/
我遇到的问题是:我有一系列通过注释收集的类。它们都位于同一个文件夹中,如果它们具有特定的注释,它们将通过 Reflections library 实例化。 。当这些类被实例化时,有一个静态初始化程序调
我一直试图了解问题到底是什么,但无论我做什么似乎都不起作用。我有一个文本文件,其中列出了名称和数字,并用冒号分隔。一个例子是: Betty Ross:52 Angie Scotts:29 Michae
我这里有一个小问题,希望有人能帮助我。 我想做一个从对象到整数的映射。该对象被标记为 Fetchtype.Lazy。 当我进行映射时,我收到以下错误消息: 11:31:46,569 ERROR Map
JUnitTest/Mockito/PowerMockito:: 尝试从 android 中的 res/raw 文件访问数据集 json 文件,但出现“InvocationTargetExceptio
我正在开发一个项目,该项目将包含许多具有相似但不同功能的 JavaFX 应用程序,因此我创建了一个抽象基类,它扩展了 Application 以处理通用功能并指示它们需要做什么,以及一个一堆扩展那个的
我有一个复杂的结构要显示在屏幕上。使用 XML 布局制作。对于垂直方向和纵向布局是不同的。 如果您翻转屏幕布局,则会重新绘制并初始化 GUI。在水平布局上,我使用 CustomRelativeLayo
我正在尝试基于 Zentask 示例创建一个简单的登录,但是在第 43 行的 smgts2\app\controllers\Application.java 中出现运行时异常。 public stat
我正在尝试将我的所有 java 应用程序升级到 openJDK11(来自 Oracle 8)。 我注意到我的报告服务器中使用 Pentaho 的一个问题。 看来 Excel 自动调整大小功能需要 op
我正在尝试将 hive 与蜂路线或色相连接,因此我遇到了错误 2015-01-01 11:56:18,312 ERROR sentry.org.apache.thrift.transport.TSas
我在页面中使用框架从服务器获取一些数据。 加载页面后,我注意到有两个调用传递给服务器: 一个在src框架中定义的NB_tans操作中的一个,另一个在页面中任何位置定义的tans操作中的另一个。 HTM
我无法在Kotlin-test 3.4.2中使用Koin 2.0.1。我得到这样的InvocationTargetException: Running koinexample.KoinSampleTe
我正在尝试添加 Hibernate 5 作为后端的 ORM 以连接 MySQL 数据库。我阅读了许多示例和教程,但总是收到 InvocationTargetException。 下面是相关代码。希望有
我正在尝试为 Android 设备上的 UI 性能测试设置 FPSMeter 应用程序。 They say我需要安装应用程序的移动和桌面部分。移动部分没有问题,但桌面部分的 .jar 文件无法启动。我
ActivityManager am = (ActivityManager)this.getSystemService(this.ACTIVITY_SERVICE); try { clear
我目前在 Android 开发者控制台上收到一些未知的崩溃报告。他们很不善于表达。它是一个 InvocationTargetException,但我不知道它来自哪里。也许我正在使用的某些框架正在使用反
我正在写一个状态检查器,它是一个 java web-start 小程序。我可以在我的电脑上运行它,但是它运行得很好;当我在网页上运行它时,出现运行时错误 java.lang.reflect.Invoc
我在OPPO X905和OPPO X907上遇到过问题,都是Android 4.0.3(API Level 15),我没有用过更高级别的API,我在Google和SO上搜索过,都是不一样的根据我的问题
如何重新抛出 InvocationTargetException 的目标异常。我有一个方法,它使用反射在我的一个类中调用 invoke() 方法。但是,如果在我的代码中抛出异常,我不关心 Invoca
根据 javadocs , InvocationTargetException.getCause() 可以为空: Returns the cause of this exception (the th
我有一个使用 AsyncTask 的简单 Activity EditText txt; @Override public void onCreate(Bundle savedInstanceState
我是一名优秀的程序员,十分优秀!