byte[]数组如何转换成fileInputStream

JavaScript020

byte[]数组如何转换成fileInputStream,第1张

如果必须要用FileOutputStream的话那是没有办法的,因为FileOutputStream是属于比较底层的流,所有的构造方法都与文件关联。

但是如果要写入blob中的话使用FileOutputStream却是有点儿多余的,因为像你那样写入文件读出来之后同样还是byte数组,所以可以直接使用OutputStream的write(byte[] b, int off, int len)方法,OFF开始标记一般设为0,len偏移量一般设为byte的length大小

Java 文件和byte数组转换

/**

* 获得指定文件的byte数组

*/

private byte[] getBytes(String filePath){

byte[] buffer = null

try {

File file = new File(filePath)

FileInputStream fis = new FileInputStream(file)

ByteArrayOutputStream bos = new ByteArrayOutputStream(1000)

byte[] b = new byte[1000]

int n

while ((n = fis.read(b)) != -1) {

bos.write(b, 0, n)

}

fis.close()

bos.close()

buffer = bos.toByteArray()

} catch (FileNotFoundException e) {

e.printStackTrace()

} catch (IOException e) {

e.printStackTrace()

}

return buffer

}

/**

* 根据byte数组,生成文件

*/

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

BufferedOutputStream bos = null

FileOutputStream fos = null

File file = null

try {

File dir = new File(filePath)

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

dir.mkdirs()

}

file = new File(filePath+"\\"+fileName)

fos = new FileOutputStream(file)

bos = new BufferedOutputStream(fos)

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()

}

}

}

}