Al leer la transmisión de archivos, a menudo se encuentra con GRANDE. Primero, claramente, los conceptos y diferencias entre los archivos de texto y los archivos binarios.
Los archivos de texto son archivos basados en caracteres. Los archivos binarios se basan en archivos de codificación basados en el valor.
Por lo tanto, se puede ver que el archivo de texto está básicamente codificado (también hay códigos no fijos como UTF-8). Y los archivos binarios pueden verse tan codificados por mucho tiempo, porque es un valor que codifica, cuántas picaduras representan un valor, lo que determina usted.
Para los archivos binarios, no debe usar una cadena, porque la cadena usará la codificación predeterminada del sistema cuando la cadena predeterminada se puede leer, operar y escribir por Byte Flow.
Para archivos de texto, debido a que la codificación se soluciona, siempre que lea el archivo, use el archivo en sí para analizar el archivo y luego obtener el byte. . Aunque los archivos binarios también pueden obtener su formato de codificación de texto, es inexacto, por lo que no se puede decir al mismo tiempo.
La operación específica es la siguiente:
1) Obtenga el formato del archivo de texto
Public String getFileEncode (string ruta) {string charset = "asci"; ); ] == (byte) 0xfe) {charset = "unicode"; {{Charset = "unicode"; // utf-16be check = true;} else if (first3bytes [0] == (byte) 0xef && first3bytes [1] == (byte) 0xbb && First3bytes [2] == (byte) 0xbf) {charset = "utf8"; ! <= 0xdf <= 0xdf <= 0xdf <= 0xdf <= 0xdf <= 0xdf) {read = bis.read (); 0x80-0xbf), o puede continuar; = Read && read <= 0xbf) {charset = "utf-8"; + Integer.ToHexString (read);}} Catch (Exception e) {E.PrintStackTrace ();} finalmente {if (bis! = Null) {try {bis.close ();} Catch ption Ex) {}}} Return Charset;} cadena estática privada getEncode (int flag1, int flag2, int flag3) {string codeD = "" ""; -8) if (flag1 == 255 && flag2 == 254) {encode = "unicode"; == 191) {encode = "utf8";} else {encode = "asci";2) Lea el flujo de archivo a través del formato de codificación del archivo
/*** Obtenga el contenido del archivo a través de la ruta. ! */ public string String ReadFile (String Path) {String data = null; Formato de cadena = fileEncode.getFileEncode (ruta); El entorno no significa que la codificación del sistema operativo // código = system.getProperty ("file.encoding"); 1; , longitud);} data = new String (Sb);} Catch (Exception E) {E.PrintStackTrace (); (isr! = NULL) {isR.CLOSE ();}} Catch (ioException e) {E.PrintStackTrace (); }3) Escriba el archivo a través del formato especificado por el archivo
/*** Guarde el contenido del archivo de acuerdo con la ruta especificada y el formato de codificación. al contenido de texto, método de seguridad * * @param data * Los datos de byte que se escribirán en la ruta del archivo * @param * contiene el nombre del archivo * @return boolean * Cuando se complete la escritura, regrese a verdadero; / Public static boolean writeFile (byte data [], string ruta, código de cadena) {boolean flag = true; = nuevo archivo (file.get parent ()); } OSW = nuevo OutpleStreamWriter (nuevo FileOutputStream (ruta), código); info ("Excepción de tofile io:"+E.getMessage ()); ();4) Para archivos binarios y hay muy pocos contenido, como la documentación de Word, etc., puede leer y escribir archivos de las siguientes maneras
/** * Lea los archivos de la ruta especificada a la matriz de bytes, puede elegir este método para un contenido de formato no de texto no con contenido * 457364578634785634534 * @param ruta * ruta del archivo, incluido el nombre del archivo * @return byte [] * byte byte byte byte byte byte by byte by byte by byte array * */ public static byte [] getFile (string ruta) lanza ioexception {fileInputStream stream = new FileInputStream (ruta); stream.read (datos); * @param data * 将要写入到文件中的字节数据 * @param ruta * 文件路径, 包含文件名 * @return boolean isok 当写入完毕时返回 true; Byte Data [], String Path) lanza la excepción {FileOutputStream Out =Lo anterior es todo el contenido de este artículo.