При чтении потока файла его часто встречается. Во -первых, ясно, что концепции и различия между текстовыми файлами и двоичными файлами.
Текстовые файлы представляют собой файлы на основе символов. Бинарные файлы основаны на кодирующих файлах на основе значений.
Следовательно, можно видеть, что текстовый файл в основном кодируется (существуют также не фиксированные коды, такие как UTF-8). И двоичные файлы можно рассматривать как длинное кодирование, потому что это кодирование значения, сколько укусов представляет значение, которое определяется вами.
Для двоичных файлов вы не должны использовать строку, потому что строка будет использовать кодирование системы по умолчанию, когда строка по умолчанию по умолчанию.
Для текстовых файлов, поскольку кодирование фиксируется, если вы читаете файл, используйте сам файл для анализа файла, а затем получить байт. Полем Хотя двоичные файлы также могут получить свой формат кодирования текста, он неточный, поэтому их нельзя сказать в то же время.
Конкретная операция заключается в следующем:
1) Получить формат текстового файла
Public Static String GetFileCode (String Path) {String charset = "ASCI"; ); ] == (byte) 0xfe) {charset = "Unicode"; {{Charset = "Unicode"; (byte) 0xbf) {charset = "utf8"; ! = - 1) {loc ++; <= 0xdf <= 0xdf <= 0xdf <= 0xdf <= 0xdf <= 0xdf) {read = bis.read (); 0x80-0xbf), или можно продолжить; = Read && read <= 0xbf) {charset = "utf-8"; + Integer.tohexstring (read);}} catch (exection e) {e.printstacktrace ();} наконец {if (bis! = Null) {try {bis.close ();} catch ption ex) {}}}}}}}}}}}}}}}}}}}}}}}} Return charset;} частная статическая строка getEncode (int flag1, int flag2, int flag3) {string encode = "" ""; -8) if (flag1 == 255 && flag2 == 254) {encode = "Unicode"; == 191) {encode = "utf8";} else {encode = "asci";2) Прочитайте поток файла через формат кодирования файла
/*** Получить содержимое файла через путь. ! */ public Static readfile (String Path) {string data = null; Format Code = fileencode.getFileencode (path); Окружающая среда не означает, что операционная система // code = System.getProperty ("file.encoding"); 1; , длина);} data = new String (sb);} catch (Exception e) {e.printstacktrace (); (isr! = null) {isr.close ();}} catch (ioexception e) {e.printstacktrace (); }3) Напишите файл через формат, указанный файлом
/*** Сохранить содержимое файла в соответствии с указанным путем и форматом кодирования. В текстовый содержимое метод безопасности * * @param Data * Byte Data, которые будут записаны в файле * @param path * pail, содержит имя файла * @return boolean * Когда написание будет завершено, вернитесь к True; / Public static boolean writefile (Byte Data [], String Path, String Code) {boolean flag = true; = новый файл (file.get parent ()); } Osw = uptureStreamWriter (New FileOutputStream (Path), Code); info ("tofile io Exception:"+e.getMessage ()); ();4) Для двоичных файлов и очень мало контента, таких как документация по словам и т. Д., Вы можете читать и записывать файлы следующим образом
/** * Читать файлы из указанного пути к массиву байтов, вы можете выбрать этот метод для некоторого не -текстового содержимого формата * 457364578634785634534 * @param path * pail Path, включая имя файла * @return byte [] * file byte byte byte byte byte байт байт по байту по байтовым массивам * */ public static byte [] getfile (path) бросает ioexception {fileInputStream Stream = new FileInputStream (Path); stream.read (data); * @param data * 将要写入到文件中的字节数据 * @param path * 文件路径, 包含文件名 * @return boolean isok 当写入完毕时返回 true; Byte Data [], Строка)Выше всего содержимое этой статьи.