Java 正确地重新组装拆分的文件
请看一下下面的代码Java 正确地重新组装拆分的文件,java,file-io,io,inputstream,outputstream,Java,File Io,Io,Inputstream,Outputstream,请看一下下面的代码 package normal; import java.io.*; import java.util.*; public class ReGenerateFiles { private File inputFolder, outputFolder; private String outputFormat, nameOfTheFile; private FileInputStream fis; private FileOutputStrea
package normal;
import java.io.*;
import java.util.*;
public class ReGenerateFiles
{
private File inputFolder, outputFolder;
private String outputFormat, nameOfTheFile;
private FileInputStream fis;
private FileOutputStream fos;
List <Byte> al;
private byte[] buffer;
private int blockNumber = 1;
public ReGenerateFiles(File inputFile, File outputFile, String nameOfTheFile, String outputFormat)
{
this.inputFolder = inputFile;
this.outputFolder = outputFile;
this.nameOfTheFile = nameOfTheFile;
this.outputFormat = outputFormat;
}
public void reGenerate() throws IOException
{
File file[] = inputFolder.listFiles();
for(int i=0;i<file.length;i++)
{
System.out.println(file[i]);
}
for(int i=0;i<file.length;i++)
{
try
{
buffer = new byte[5000000];
int read = fis.read(buffer, 0, buffer.length);
fis.close();
writeBlock();
}
catch(IOException io)
{
io.printStackTrace();
}
finally
{
fis.close();
fos.close();
}
}
}
private void writeBlock()throws IOException
{
try
{
fos = new FileOutputStream(outputFolder+"/"+nameOfTheFile+"."+outputFormat,true);
fos.write(buffer, 0, buffer.length);
fos.flush();
fos.close();
}
catch(Exception e)
{
fos.close();
e.printStackTrace();
}
finally
{
fos.close();
}
}
}
以前,但没用
请帮助我解决这两个问题,并正确地重新组装拆分后的文件。这是因为缓冲区从未适合实际内容的大小。它总是50000个,实际上大小不一。这就是问题所在您没有打开
文件输入流
谢谢您的回复。不管怎样,这能100%解决我的问题吗?字节呢?好的,这很有效。现在,该文件的某些部分(例如:如果是MP3文件,则是其中的一些部分)丢失了。如何纠正这一点?请帮忙!
buffer = new byte[(byte)file[i].length();