读取 Java 文件到 Byte 数组的三种方法 (总结)
package zs ؛ import java.io.bufferedInputStream ؛ import java.io.bytearrayoutputstream ؛ import java.io java.nio.mappedbytebuffer ؛ استيراد java.nio.channels.filechannel ؛ استيراد java.nio.channels.filechannel.mapmode ؛ public class fileutils {public byte [] getContent (سلسلة filepath) ioexception {file file = filepath) ؛ integer.max_value) {system.out.println ("ملف كبير جدًا ...") ؛ إرجاع null ؛} fileInputStream fi = new FileInputStream (file) ؛ byte [] buffer = new byte [(int) filedize] ؛ buffer.length - إزاحة))> = 0) {Offset + = numRead ؛} // 确保所有数据均被读取 if (إزاحة! = buffer.length) {رمي ioException جديد ("لا يمكن قراءة الملف بالكامل" + file.getName ()) ؛} fi.close () ؛ Byte [] TobyTearray (اسم ملف السلسلة) يلقي ioException {file f = filedile (filename) ؛ if (! f.exists ()) {throw new fileNotfoundException (filename) ؛} bytearrayoutputstredstream bos = new byTearRayoutPutStream ((int) f.lenge ()) ؛ bufferedInputStream (جديد fileInputStream (f)) ؛ int buf_size = 1024 ؛ byte [] buffer = new byte [buf_size] ؛ int len = 0 ؛ بينما (-1! = (len = in.read (read ، 0 ، buf_size))) (ioException e) {e.printstacktrace () ؛ rem e ؛} أخيرًا {try {in.close () ؛} catch (ioException e) {e.printstacktrace () ؛} bos.close () ؛ اسم الملف) يلقي ioException {file f = ملف جديد (اسم الملف) ؛ if (! bytebuffer.allocate ((int) channel.size ()) ؛ بينما ((channel.read (bytebuffer))> 0) {// do nothing // system.out.println ("reading") ؛} return bytebuffer.array () ؛ (ioException e) {E.PrintStackTrace () ؛} جرب {fs.close () ؛} catch (ioException e) {e.printstacktrace () ؛ اسم الملف) يلقي ioException {fileChannel fc = null ؛ try {fc = new RandomAccessFile (filename ، "r"). getChannel () ؛ 0. bytebuffer.remaining ()) ؛} نتيجة الإرجاع ؛} catch (ioException e) {E.PrintStackTrace () ؛ رمي e ؛} أخيرًا {try {fc.close () ؛} catch (ioException e) {以上这篇读取 java 文件到 byte 数组的三种方法 (总结) 就是小编分享给大家的全部内容了 , 希望能给大家一个参考 , 也希望大家多多支持武林网。