关于文件拆分的问题。
今天写了一个关于文件拆分的测试。有个地方不知道错在哪,有大神能指点一下吗?
上面注释的程序就是像请教一下,为什么两者得出的最后一个文件的内容不一样。
public void write(byte[] b, int off, int len)
b - 数据。
off - 数据的初始偏移量。
len - 要写入的字节数。
为什么当len大于b的数据长度但小于b数组的长度的时候最后一个文件会有内容缺失?
这是填1024的情况截图


这是填len的正常情况截图


占用空间相同,大小不同,但是大小大的文件内容却是缺失的。
有大神能讲解一下吗
public class TestCut {
public void cut() {
String readPath = "d:/testcut/vmware.log";
File testFile = new File(readPath);
long num = testFile.length() / 10L;
try {
RandomAccessFile file1 = new RandomAccessFile(testFile, "r");
byte[] min = new byte[1024];
int len = -1;
for(int i = 0; i < 10; i++ ) {
String writePath = "d:/testcut/vmware" + i + ".log";
File testOut = new File(writePath);
RandomAccessFile file2 = new RandomAccessFile(testOut,"rw");
try {
while((len = file1.read(min)) != -1) {
System.out.println(len);//最后一次len值是278
file2.write(min,0,1024);
//file2.write(min,0,len);
if(file2.length() > num) {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}上面注释的程序就是像请教一下,为什么两者得出的最后一个文件的内容不一样。
public void write(byte[] b, int off, int len)
b - 数据。
off - 数据的初始偏移量。
len - 要写入的字节数。
为什么当len大于b的数据长度但小于b数组的长度的时候最后一个文件会有内容缺失?
这是填1024的情况截图


这是填len的正常情况截图


占用空间相同,大小不同,但是大小大的文件内容却是缺失的。
有大神能讲解一下吗
...全文
相关推荐
CSV拆分工具.exe
不过,对于处理包含非ASCII字符(如中文)的UTF-8编码文件,用户需要额外注意编码问题。同时,如果工具能够支持多种编码格式,将更加强大和实用。
拆分大容量CSV文件
然而,当CSV文件的大小变得非常大时,可能会面临读取速度慢、内存占用高、甚至无法用常规软件打开等问题。此时,"拆分大容量CSV文件"就成为一个必要的操作。首先,我们需要理解CSV文件的基本概念。
SQL大文件拆分工具SQLDumpSplitter
SQLDumpSplitter就是用来解决这个问题的,它能够将大的SQL dump文件拆分成更小、更易管理的部分。
SQLDumpSplitter 大Sql文件拆分成小文件
SQLDumpSplitter是一款实用工具,专门用于解决在MySQL数据库环境中遇到的大SQL脚本文件拆分问题。
CSV拆分器拆分相同的行数不同的CSV文件
在使用前,阅读这个指南可以帮助你更好地理解工具的功能和操作方式,避免使用过程中的问题。总结来说,CSV拆分是数据处理中的一个重要环节,尤其对于大数据量的CSV文件。


