Java 字节数组到文件对象,而不保存到磁盘
我有一个方法,它在.txt或.docx文件的不同代码部分中接受来自Java 字节数组到文件对象,而不保存到磁盘,java,file,byte,Java,File,Byte,我有一个方法,它在.txt或.docx文件的不同代码部分中接受来自文件的字节[]。我想从字节中创建一个新的文件对象,以便以后从中读取内容,而无需将该文件保存到磁盘。这可能吗?还是有更好的方法从文件字节中获取内容?这不是它的工作方式。一个java.io.File对象是一个轻巧的包装器:检查-它有一个String字段,其中包含路径,这是除了一些簿记内容之外的所有内容 不可能用java.io.File对象表示任意数据j.i.File对象表示磁盘上的文本文件,不能表示其他任何内容 文件。readAllB
文件的字节[]
。我想从字节中创建一个新的文件
对象,以便以后从中读取内容,而无需将该文件保存到磁盘。这可能吗?还是有更好的方法从文件字节中获取内容?这不是它的工作方式。一个java.io.File
对象是一个轻巧的包装器:检查-它有一个String
字段,其中包含路径,这是除了一些簿记内容之外的所有内容
不可能用java.io.File对象表示任意数据j.i.File
对象表示磁盘上的文本文件,不能表示其他任何内容
文件。readAllBytes
从字节中获取内容,即。。为什么方法有这个名称
通常的解决方案是,某些库中获取文件的方法被重载;还有一种方法采用字节[]
,或者,如果不采用这种方法,还有一种方法采用输入流
(您可以很容易地从字节[]
生成IS:新的ByteArrayInputStream(byteArr)
将完成这项工作)
如果您正在使用的API不包含任何此类方法,那么它就是一个糟糕的API,您应该找到其他东西,或者咬紧牙关接受您正在使用的是一个糟糕的API,以及所有这意味着的解决方法,包括必须将字节保存到磁盘以满足愚蠢的API
但是先看看;我打赌有一个byte[]
和/或InputStream
变体(或者可能是URL
或ByteBuffer
或ByteStream
或其他一些更奇特的变体)。它不是这样工作的。一个java.io.File
对象是一个轻巧的包装器:检查-它有一个String
字段,其中包含路径,这是除了一些簿记内容之外的所有内容
不可能用java.io.File对象表示任意数据j.i.File
对象表示磁盘上的文本文件,不能表示其他任何内容
文件。readAllBytes
从字节中获取内容,即。。为什么方法有这个名称
通常的解决方案是,某些库中获取文件的方法被重载;还有一种方法采用字节[]
,或者,如果不采用这种方法,还有一种方法采用输入流
(您可以很容易地从字节[]
生成IS:新的ByteArrayInputStream(byteArr)
将完成这项工作)
如果您正在使用的API不包含任何此类方法,那么它就是一个糟糕的API,您应该找到其他东西,或者咬紧牙关接受您正在使用的是一个糟糕的API,以及所有这意味着的解决方法,包括必须将字节保存到磁盘以满足愚蠢的API
但是先看看;我打赌有一个byte[]
和/或InputStream
变体(或者可能是URL
或ByteBuffer
或ByteStream
或一些其他更奇特的变体)。如果不想与文件交互,不要使用File
。传递Byte[]
或创建自己的类来包装数据。我如何从文件字节中获取内容?字节就是内容。对于文本文件,我可以这样做,但对于其他文件类型,如.docx和.xlsx,又如何呢?文件仅由字节组成。无论文件类型如何,内容都是字节。如果不想与文件交互,请不要使用文件
。传递Byte[]
或创建自己的类来包装数据。我如何从文件字节中获取内容?字节就是内容。对于文本文件,我可以这样做,但对于其他文件类型,如.docx和.xlsx,又如何呢?文件仅由字节组成。无论文件类型如何,内容都是字节。我不知道为什么,但我从来没有考虑过找到一个可以处理字节而不是文件对象的库,所以我来看看。谢谢。我不知道为什么,但我从来没有考虑过找到一个可以处理字节而不是文件对象的库,所以我来看看。谢谢