为了账号安全,请及时绑定邮箱和手机立即绑定

file.toByteArray() 方法有什么作用?

file.toByteArray() 方法有什么作用?

萧十郎 2021-10-27 09:38:42
我必须将文件上传到队列。但似乎 toByteArray() 方法实际上并未转换文件。为什么?        //upload the file to the queue        File file = new File("J:/Documents/Head Fund  Share Class Attributes.xlsx");        //convert to byte array        byte[] array = null;        try {            array = Files.toByteArray(file);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        //send the file data        headFundUploader.send("helloworld.q", array);
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

如果您的代码片段是编译没有错误的类的一部分,那么您必须Files从 Java 标准库之外的其他地方导入了一个类。(标准 Java SE 库不定义Files::toByteArray方法。)

没有看到你的整个班级,我们只能猜测哪个 3rd 方库是......所以这是一个有根据的猜测。

Files::toByteArray(File)Guava (Google commons) 库中有一个方法。该方法的javadoc是这样说的:

public static byte[] toByteArray(File file) throws IOException

将文件中的所有字节读入字节数组。

路径等效:Files.readAllBytes(java.nio.file.Path).


但似乎 toByteArray() 方法实际上并未转换文件。为什么?

这取决于你所说的“转换”是什么意思。该方法的实际记录目的是简单地读取文件的字节,而无需任何字符集解码或其他转换。但我想你可以称之为将文件内容“转换”为字节数组。


如果您有更详细的答案,您将需要:

  • 确认Files您正在导入哪个类(您已经完成了!),

  • 告诉我们您所说的“转换”是什么意思,以及

  • 告诉我们当您在应用程序中运行该代码时会发生什么,以及您认为它没有“转换”文件的原因。


查看完整回答
反对 回复 2021-10-27
?
心有法竹

TA贡献1866条经验 获得超5个赞

如果我错了,请纠正我,但我认为您想使用Files.readAllBytes(Path)。


去做这个:


import java.io.File;

import java.nio.file.Files;


File file = new File("J:/Documents/Head Fund  Share Class Attributes.xlsx");

byte[] array = Files.readAllBytes(file.toPath());


查看完整回答
反对 回复 2021-10-27
  • 2 回答
  • 0 关注
  • 315 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信