Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正确地重新组装拆分的文件_Java_File Io_Io_Inputstream_Outputstream - Fatal编程技术网

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();