байт для записи в Java

С Java:

У меня есть byte[] который представляет файл.

Как записать это в файл (например, C:\myfile.pdf )

Я знаю, что это сделано с помощью InputStream, но я не могу работать.

Использование Apache Commons IO

 FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray) 

Или, если вы настаиваете на том, чтобы сделать работу для себя …

 try (FileOutputStream fos = new FileOutputStream("pathname")) { fos.write(myByteArray); //fos.close(); There is no more need for this line since you had created the instance of "fos" inside the try. And this will automatically close the OutputStream } 

Без каких-либо библиотек:

 FileOutputStream stream = new FileOutputStream(path); try { stream.write(bytes); } finally { stream.close(); } 

С Google Guava :

 Files.write(bytes, new File(path)); 

С Apache Commons :

 FileUtils.writeByteArrayToFile(new File(path), bytes); 

Все эти страtagsи требуют, чтобы вы также заметили исключение IOException.

Другое решение с использованием java.nio.file :

 byte[] bytes = ...; Path path = Paths.get("C:\myfile.pdf"); Files.write(path, bytes); 

Кроме того, поскольку Java 7, одна строка с java.nio.file.Files:

 Files.write(new File(filePath).toPath(), data); 

Где данные – ваш байт [], а filePath – это String. Вы также можете добавить несколько вариантов открытия файла с classом StandardOpenOptions. Добавьте броски или закруглите с помощью try / catch.

Начиная с Java 7, вы можете использовать оператор try-with-resources, чтобы избежать утечки ресурсов и сделать ваш код более удобным для чтения. Подробнее об этом здесь .

Чтобы написать файл byteArray в файл, вы должны:

 try (FileOutputStream fos = new FileOutputStream("fullPathToFile")) { fos.write(byteArray); } catch (IOException ioe) { ioe.printStackTrace(); } 

Попробуйте OutputStream или, в частности, FileOutputStream

Вы можете попробовать Cactoos :

 new LengthOf(new TeeInput(array, new File("a.txt"))).value(); 

Подробнее: http://www.yegor256.com/2017/06/22/object-oriented-input-output-in-cactoos.html

Я знаю, что это сделано с InputStream

На самом деле, вы будете писать на выход файла …

 File f = new File(fileName); byte[] fileContent = msg.getByteSequenceContent(); Path path = Paths.get(f.getAbsolutePath()); try { Files.write(path, fileContent); } catch (IOException ex) { Logger.getLogger(Agent2.class.getName()).log(Level.SEVERE, null, ex); } 

Основной пример:

 String fileName = "file.test"; BufferedOutputStream bs = null; try { FileOutputStream fs = new FileOutputStream(new File(fileName)); bs = new BufferedOutputStream(fs); bs.write(byte_array); bs.close(); bs = null; } catch (Exception e) { e.printStackTrace() } if (bs != null) try { bs.close(); } catch (Exception e) {} 

////////////////////////// 1] Файл для байта [] ///////////////// //

 Path path = Paths.get(p); byte[] data = null; try { data = Files.readAllBytes(path); } catch (IOException ex) { Logger.getLogger(Agent1.class.getName()).log(Level.SEVERE, null, ex); } 

/////////////////////// 2] Байт [] в файл //////////////////// ///////

  File f = new File(fileName); byte[] fileContent = msg.getByteSequenceContent(); Path path = Paths.get(f.getAbsolutePath()); try { Files.write(path, fileContent); } catch (IOException ex) { Logger.getLogger(Agent2.class.getName()).log(Level.SEVERE, null, ex); } 

Это программа, в которой мы читаем и печатаем массив смещений и длины байтов с помощью String Builder и записываем массив длины смещения байтов в новый файл.

` Введите код здесь

 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; //*This is a program where we are reading and printing array of bytes offset and length using StringBuilder and Writing the array of bytes offset length to the new file*// public class ReadandWriteAByte { public void readandWriteBytesToFile(){ File file = new File("count.char"); //(abcdefghijk) File bfile = new File("bytefile.txt");//(New File) byte[] b; FileInputStream fis = null; FileOutputStream fos = null; try{ fis = new FileInputStream (file); fos = new FileOutputStream (bfile); b = new byte [1024]; int i; StringBuilder sb = new StringBuilder(); while ((i = fis.read(b))!=-1){ sb.append(new String(b,5,5)); fos.write(b, 2, 5); } System.out.println(sb.toString()); }catch (IOException e) { e.printStackTrace(); }finally { try { if(fis != null); fis.close(); //This helps to close the stream }catch (IOException e){ e.printStackTrace(); } } } public static void main (String args[]){ ReadandWriteAByte rb = new ReadandWriteAByte(); rb.readandWriteBytesToFile(); } } 

O / P в консоли: fghij

O / P в новом файле: cdefg

1- Традиционный способ

Традиционным способом преобразования является использование FileOutputStream следующим образом:

 public static File convertUsingOutputStream(byte[] fileBytes) { File f = new File("C:\\Users\\user\\Desktop\\output\\myfile.pdf"); try (FileOutputStream fos = new FileOutputStream(f)) { fos.write(fileBytes); } catch(Exception ex) { ex.printStackTrace(); } return f; } 

2- Java NIO

С помощью Java 7 вы можете выполнить преобразование, используя class утилиты файлов пакета nio:

 public static File convertUsingJavaNIO(byte[] fileBytes) { File f = new File("C:\\Users\\user\\Desktop\\output\\myfile.pdf"); try { Files.write(f.toPath(), fileBytes); } catch (Exception ex) { ex.printStackTrace(); } return f; } 

3- Apache Commons IO

Помимо JDK, вы можете выполнить преобразование с использованием Apache Common IO библиотеки следующим образом:

 public static File convertUsingCommonsIO(byte[] fileBytes) { File f = new File("C:\\Users\\user\\Desktop\\output\\myfile.pdf"); try { FileUtils.writeByteArrayToFile(f, fileBytes); } catch(Exception ex) { ex.printStackTrace(); } return f; } 

Ссылка: Java – Преобразование байт [] в файл

  • Проектирование заставки (java)
  • Случайный "Элемент больше не привязан к DOM" StaleElementReferenceException
  • Кэширование ответа HTTP
  • java.io.NotSerializableException
  • Что вызывает «java.lang.IllegalStateException: ни BindingResult, ни обычный целевой объект для bean name« command », ansible как атрибут запроса»?
  • Есть ли простой способ подключить источник в Eclipse?
  • Преобразование значения цвета RGB в шестнадцатеричное
  • Java Timer vs ExecutorService?
  • Есть ли эквивалент java.util.regex для шаблонов типа «glob»?
  • Не удается найти главный class в файле, составленном с помощью Ant
  • Как установить базовый url для restа в весенний ботинок?
  • Interesting Posts

    Как удалить файлы в командной строке с регулярными выражениями?

    Изменение цвета по умолчанию Firefox при открытии ссылок на новой вкладке

    Научите Google Chrome понимать пользовательский TLD

    В чем разница между разделами require и require-dev в composer.json?

    Мониторинг моей активности на компьютере?

    Неужели так плохо ловить общее исключение?

    Нельзя делиться папками – «Больше нет конечных точек от конечного контроллера».

    Как получить get-childitem для фильтрации по нескольким типам файлов?

    Шифрование и расшифровка большой строки в java с помощью RSA

    Как заставить трубы работать с Runtime.exec ()?

    Автоматическое обновление Flash Player при запуске Windows

    Какие формальные языки могут анализировать современные двигатели регулярных выражений?

    Windows 8 Asus laptop: Яркость экрана автоматически регулируется, несмотря на то, что она отключена

    Почему Guid.ToByteArray () упорядочивает байты так, как он делает?

    Имя не связано в этом контексте

    Давайте будем гением компьютера.