读取 Java 文件到 Byte 数组的三种方法 (总结)
Paket zs; import Java.io.BufferedInputStream; Import Java.io.BytearrayoutputStream; Import Java.io.file; Import Java.io.FileInputStream; Import Java.io.filenotfoundException; Import Java.io.IOException; java.nio.mappedBytebuffer; importieren java.nio.channels.filechannel; importieren java.nio.channels.filechannel.mapMode; public class FileUtils {public byte [] getContent (String filepath) lenkt ioException {Datei -Datei = Datei (filepath); filepath); filepath); Integer.max_value) {System.out.println ("Datei zu groß ..."); null return;} fileInputStream fi = new FileInputStream (Datei); byte [] buffer = new byte [(int) fileside]; int offset = 0; Buffer.Length - Offset))> = 0) {Offset + = numRead;} // 确保所有数据均被读取 if (offset! byte [] tobytearray (String -Dateiname) löst ioException {Datei f = neue Datei (Dateiname); if (! f.exists ()) {Neue FilenotFoundException (Dateiname);} bytearrayoutputstream bos = new bytream ((int) f.length (); BufferedInputStream (neuer FileInputStream (f)); int buf_size = 1024; byte [] buffer = new byte [buf_size]; int len = 0; while (-1! = (Len = in (IOException e) {e.printStackTrace();throw e;} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}bos.close();}}/** * NIO way * * @param filename * @return * @throws IOException */public static byte[] toByteArray2(String Dateiname) löst ioException {Datei f = neue Datei (Dateiname); if (! f.exists ()) {Neue FileNotFoundException (Dateiname);} filechannel Channel = null; FileInputStream fs = null; try {fs = new Fileputstream (f); Channel = fs.Getchannel (); Bytebuffer.Allecocate ((int) Channel.size ()); while ((Channel.Read (bytebuffer))> 0) {// nichts // system.out.println ("Reading");} return bytebuffer.array ();} catch (ioException e) {e.printStack (); (IOException e) {e.printStackTrace();}try {fs.close();} catch (IOException e) {e.printStackTrace();}}}/** * Mapped File way MappedByteBuffer 可以在处理大文件时,提升性能 * * @param filename * @return * @throws IOException */public static byte[] toByteArray3(String Dateiname) löst ioException {filechannel fc = null; try {fc = new randomAccessfile (Dateiname, "r"). getCanNel (); mapedBytebuffer bytebuffer = fc.map (mapmode.read_only,, 0, fc.size ()). Load (); system.out.println (bytebuffer.isloaded ()); byte [] result = new Byte [(int) fc.size ()]; if (bytebuffer.remaining ()> 0) {// system.out.println ("reme"); byteBeicher (rema); byteBifer.get (resultd (rema byteBuffer.remaining());}return result;} catch (IOException e) {e.printStackTrace();throw e;} finally {try {fc.close();} catch (IOException e) {e.printStackTrace();}}}}以上这篇读取 Java 文件到 Byte 数组的三种方法 (总结) 就是小编分享给大家的全部内容了 , 希望能给大家一个参考 , 也希望大家多多支持武林网。 也希望大家多多支持武林网。 也希望大家多多支持武林网。