gpt4 book ai didi

java - 使用Java进行文件分割的问题

转载 作者:行者123 更新时间:2023-12-02 07:28:23 25 4
gpt4 key购买 nike

使用 java 将文件分割为不同的字节数组,然后再连接回来时,该文件的应用程序不会呈现该文件。即使原始文件和重新加入的文件的字节数相同,也会发生这种情况。

此处的目标是将大文件拆分为不同的字节数组,并通过网络使用不同的编程语言 (C#) 重新加入这些字节数组。

我编写的拆分代码如下:

File f = new File(fileLoc);
FileInputStream fi = new FileInputStream(f);
int size = fi.available();

int MB2 = 1048576 * 2;
int total = size / MB2;
if (size % MB2 != 0) {
total += 1;
}
int ch;

while (size > 0) {
int arraysize;
if (size < MB2) {
arraysize = size;
} else
arraysize = MB2;
byte bytes_read[] = new byte[arraysize];
ch = fi.read(bytes_read, 0, arraysize);
// The byte_read is added to an array list of byte[]
// and send along with certain other parameters
size = size - ch;
count++;
}
fi.close();

最佳答案

您有两个问题:

  • 您正在使用 available() 作为了解文件长度的方法。这不是该方法的作用。几乎不应该使用 available() 。我从未见过任何使用它是个好主意的用例。
  • 您正在使用 read() 方法并忽略其返回值。您使用它来减少大小变量,但您不关心字节数组是否填充了读取的字节或填充了零。 read() 不能保证读取您要求的字节数。

通过线路发送字节并由另一端读取的方式也可能存在其他错误。

关于java - 使用Java进行文件分割的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13246528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com