byte数组与File文件的转换

byte数组与File文件的转换,第1张

业务场景:

在异步线程中,主旦中帆线程提交了一个文件,子线程接收文件后出现文件大小变为“0”的情况。

原因:文件从主线程到子线程连接断开,导致文件上传数据丢失

处理方式:培斗在主线程中模雹将文件转为byte数组,在子线程接收该数组后再将数组转为文件。

File与byte数组的相互转换

首坦源简先判断首位让裤是否有“{}”然后将其删除

然后使用文本分割对字节集进行分割

最后写一个十到十六进制的子程序将这些文本型数值转换到文本型十六进制

具体方法如下:

.版本

2

.局部变量

I,

整数型

.局部变量

Text,

文本型

.局部变量

TextA,

文本型,

,

"0"

Text

删首尾空

(编辑框1.内容)

Text

子文本替换

(Text,

”,

,

,

,

真)

Text

子文本替换

(Text,

“{”,

,

,

,

真)

Text

子文本替换

(Text,

“}”,

,

,

,

真)

.如果真

(Text

“”)

返回

()

.如果真结束

TextA

分割文本

(Text,

“,”,

)

Text

“”

.计次循环首

(取数组成员数

(TextA),

I)

.如果

(到整数

(TextA

[I])

15)

Text

Text

取十裂拦六进制文本

(到整数

(TextA

[I]))

.否则

Text

Text

“0”

取十六进制文本

(到整数

(TextA

[I]))

.如果结束

.计次循环尾

()

编辑框2.内容

Text

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

}

}

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存