方法一:使用scrollpanel+vbox+lable组合,数据量少时可以用,大了会卡住
方法二:直接使用textarea即可,可以使用textarea.append方法,数据量一般时可用,大了会卡住
方法三:listview,超过100M可用
利用scanner一行一行的读取
Parent root = null;
Stage stage=new Stage();
root = FXMLLoader.load(getClass().getResource("/logcontent.fxml"));
Parent finalRoot = root;
stage.setTitle(r);
stage.initModality(Modality.WINDOW_MODAL);
stage.setScene(new Scene(root, 900, 600));
stage.show();
ObservableList<Object> obList = FXCollections.observableArrayList();
FileInputStream in=new FileInputStream(r);
Scanner scanner=new Scanner(in);
while (scanner.hasNextLine()){
obList.add(scanner.nextLine());
}
ListView lv=(ListView)root.lookup("#lv");
Platform.runLater(new Runnable() {
@Override
public void run() {
lv.setItems(obList);
}
});
} catch (IOException e) {
e.printStackTrace();
}