java中如何把一个文件转化为byte数组?

java中如何把一个文件转化为byte数组?,第1张

import java.io.File

import java.io.FileInputStream

import java.io.IOException

import java.io.InputStream

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

try{

getBytesFromFile(new File("C:\\薯胡aaa.txt"))

}catch(IOException e){

System.out.println("IOException")

}

}

// 返回一个byte数组

public static byte[] getBytesFromFile(File file) throws IOException {

InputStream is = new FileInputStream(file)

// 获取文件轮扰大小

long length = file.length()

if (length >Integer.MAX_VALUE) {

// 文件太大,无法读取

throw new IOException("File is to large "+file.getName())

}

// 创建一个数据来保存文件数据

byte[] bytes = new byte[(int)length]

// 读取数据到byte数组中

int offset = 0

int numRead = 0

while (offset <bytes.length

&&(numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {

offset += numRead

}

// 确保所有数据均被读取

if (offset <bytes.length) {

throw new IOException("Could not completely read file "数桐拦+file.getName())

}

// Close the input stream and return bytes

is.close()

return bytes

}

}

java将文件转换为byte数组,主要是使用输出流,实例如下:

/** 

     * 根据byte数组,生成文件 

     */  

    public static void getFile(byte[] bfile, String filePath,String fileName) {  

      者族  BufferedOutputStream bos = null  //新建一个输出流

        FileOutputStream fos = null  //w文件包装输出流

        File file = null  

 首型弊       try {  

            File dir = new File(filePath)  

            if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在  

                dir.mkdirs()  

            }  

            file = new File(filePath+"\\"+fileName)  //新建一个file类

            fos = new FileOutputStream(file)  

            bos = new BufferedOutputStream(fos)  //输出的byte文件

            bos.write(bfile)  

        } catch (Exception e) {  

            e.printStackTrace()  

        } finally {  

            if (bos != null) {  

   租搏             try {  

                    bos.close()  //关闭资源

                } catch (IOException e1) {  

                    e1.printStackTrace()  

                }  

            }  

            if (fos != null) {  

                try {  

                    fos.close()  //关闭资源

                } catch (IOException e1) {  

                    e1.printStackTrace()  

                }  

            }  

        }  

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12263526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存