Практическое руководство. Преобразование массива байтов в строку в Visual Basic
В этом разделе показано, как преобразовать байты из массива байтов в строку.
Пример
В этом примере метод класса кодирования используется GetStringEncoding.Unicode для преобразования всех байтов массива байтов в строку.
Private Function UnicodeBytesToString( ByVal bytes() As Byte) As String Return System.Text.Encoding.Unicode.GetString(bytes) End Function
Для преобразования массива байтов в строку можно выбрать один из нескольких вариантов кодирования:
- Encoding.ASCII: получает кодировку для 7-разрядной кодировки ASCII.
- Encoding.BigEndianUnicode: получает кодировку для формата UTF-16 с использованием порядка байтов с большим байтом.
- Encoding.Default: возвращает кодировку для текущей кодовой страницы ANSI системы.
- Encoding.Unicode: получает кодировку для формата UTF-16 с использованием порядка байтов с минимальным порядком байтов.
- Encoding.UTF32: получает кодировку для формата UTF-32 с использованием порядка байтов с минимальным порядком байтов.
- Encoding.UTF7: получает кодировку для формата UTF-7.
- Encoding.UTF8: получает кодировку для формата UTF-8.
См. также раздел
- System.Text.Encoding
- GetString
- Практическое руководство. Преобразование строки в массив байтов в Visual Basic
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Java — Как сохранить байт [] в файл
В этом примере Java показано, как прочитать файл в байтовый массив и сохранить байтовый массив обратно в новый файл с помощью классических try-catch-try-catch, JDK 7 try-resources и решения Java.NIO.
package com.mkyong; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class ArrayOfBytesToFile < private static final String UPLOAD_FOLDER = "C:\temp\"; public static void main(String[] args) < FileInputStream fileInputStream = null; try < File file = new File("C:\temp\testing1.txt"); byte[] bFile = new byte[(int) file.length()]; // читать файл в байты [] fileInputStream = new FileInputStream(file); fileInputStream.read(bFile); // сохранить байты [] в файл writeBytesToFile(bFile, UPLOAD_FOLDER + "test1.txt"); writeBytesToFileClassic(bFile, UPLOAD_FOLDER + "test2.txt"); writeBytesToFileNio(bFile, UPLOAD_FOLDER + "test3.txt"); System.out.println("Done"); >catch (IOException e) < e.printStackTrace(); >finally < if (fileInputStream != null) < try < fileInputStream.close(); >catch (IOException e) < e.printStackTrace(); >> > > // Classic, catch (IOException e) < e.printStackTrace(); >finally < if (fileOuputStream != null) < try < fileOuputStream.close(); >catch (IOException e) < e.printStackTrace(); >> > > // Начиная с JDK 7 - попробуйте ресурсы private static void writeBytesToFile(byte[] bFile, String fileDest) < try (FileOutputStream fileOuputStream = new FileOutputStream(fileDest)) < fileOuputStream.write(bFile); >catch (IOException e) < e.printStackTrace(); >> // Начиная с JDK 7, NIO private static void writeBytesToFileNio(byte[] bFile, String fileDest) < try < Path path = Paths.get(fileDest); Files.write(path, bFile); >catch (IOException e) < e.printStackTrace(); >> >
Рекомендации
- Как преобразовать файл в массив байтов
- Файлы JavaDoc
- FileOutputStream JavaDoc
ЧИТАТЬ ТАКЖЕ: Как переопределить PrimeFaces CSS?
Как перевести файл в массив байтов
Как перевести файл в массив байтов и наоборот? Файлом может быть MS Word и Excel или что-то другое. Также и строку.
Отслеживать
user177221
задан 7 сен 2015 в 3:48
Aslan Kussein Aslan Kussein
1,776 2 2 золотых знака 14 14 серебряных знаков 35 35 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
byte[] array = Files.readAllBytes(Paths.get(fileName));
Отслеживать
5,509 16 16 серебряных знаков 42 42 бронзовых знака
ответ дан 7 сен 2015 в 7:33
465 3 3 серебряных знака 13 13 бронзовых знаков
byte[] fileInArray = new byte[(int)file.length()]; FileInputStream f = new FileInputStream(""); f.read(fileInArray);
Это без использования всякого рода сторонних библиотек. Средствами java.
Отслеживать
ответ дан 7 сен 2015 в 4:18
Виталий Вихляев Виталий Вихляев
891 15 15 серебряных знаков 34 34 бронзовых знака
\я вот если я пытаюсь из джава класса сделать массив байтов и какой метод мне использовать не знаете?
7 сен 2015 в 4:28
@Aslan Kussein с файлами .java точно так же. Если же вам нужно в массив байтов преобразовать объект какого-то класса , то вам необходимо его сериализовать. Очень хороший ресурс на эту тему здесь
7 сен 2015 в 4:56
А вы документацию к InputStream.read читали? Там вообще-то написано «Reads some number of bytes from the input stream and stores them into the buffer array b». А вы даже возвращаемое значение не проверяете. Чтение может прерваться в произвольный момент, и вы никак не узнаете, сколько байт считано по факту.
7 сен 2015 в 6:20
@Tagir Valeev никто не мешает обработать ошибку при чтении. Насчет контроля количества считанных байт согласен- в моем способе его нет (а может и не нужен). И все же. Как вы решали бы эту проблему, при использовании java более взрослых версий?
7 сен 2015 в 7:10
Вообще, вероятно, лучше memory-mapping сделать. Это будет быстрее. Если без мемори-мэппинга — воспользовался бы библиотекой или написал бы вручную примерно то же самое, что в readAllBytes .
Как преобразовать массив байт в любой тип?

Спасибо. После сдачи проекта займусь изучением.
По задумке вместо (byte) я хотел подставлять любой тип с помощью шаблонной функции, но тут, как я понял, это невозможно.
object хранит массив, его вообще возможно преобразовать в тип T?
Изначально метод выгладил так
public T Get() < if (dataByteArray == null) < return default(T); >var formatter = new BinaryFormatter(); using (var stream = new MemoryStream(dataByteArray)) < object obj = formatter.Deserialize(stream); return (T)obj; >>

# @mindtester Куратор тега C#
После сдачи проекта займусь изучением.
как вы верно догадались, частенько, ответ находится путем эксперементальных проверок )).. если найдете способ мотивировать — я проделаю это за вас ))