Как загрузить файл, который был создан при одном запуске в Java [duplicate]

В дополнение к ответам PhoneixS, чтобы получить правильную длину строки в байтах. Поскольку mb_strlen() медленнее, чем strlen(), для лучшей производительности можно проверить установку «mbstring.func_overload» ini, чтобы использовать только mb_strlen() когда это действительно необходимо:

$content_length = ini_get('mbstring.func_overload') ? mb_strlen($content , '8bit') : strlen($content);
2
задан user2651804 30 May 2016 в 08:48
поделиться

2 ответа

File предоставляет метод для получения URL-адреса для файла, а конструктор Image ожидает URL String.

Image imageForFile = new Image(file.toURI().toURL().toExternalForm());
7
ответ дан fabian 20 August 2018 в 10:23
поделиться
  • 1
    Повторяя, я бы предпочел это решение, поскольку оно не связано с копированием памяти в качестве моего ответа. – Nikos Paraskevopoulos 30 May 2016 в 09:29

Объединение класса javax.imageio.ImageIO ( ref ) и javafx.embed.swing.SwingFXUtils ( ref ) может преобразовать «вход» (то есть: поток, файл, URL) в образ JavaFX. Пример кода (для File):

public static Image readImage(File file) {
    try {
        BufferedImage bimg = ImageIO.read(file);
        return SwingFXUtils.toFXImage(bimg, null);
    }
    catch( IOException e ) {
        // do something, probably throw some kind of RuntimeException
    }
}
1
ответ дан Nikos Paraskevopoulos 20 August 2018 в 10:23
поделиться
  • 1
    Это решение, но для этого случая требуется ненужная копия памяти. Пожалуйста, см. Ответ Fabian. – Nikos Paraskevopoulos 30 May 2016 в 09:30
Другие вопросы по тегам:

Похожие вопросы: