Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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
如何用多个txt文件解压一个zip文件,并将其转换为一个新的txt文件,而不覆盖java中文件中的信息_Java - Fatal编程技术网

如何用多个txt文件解压一个zip文件,并将其转换为一个新的txt文件,而不覆盖java中文件中的信息

如何用多个txt文件解压一个zip文件,并将其转换为一个新的txt文件,而不覆盖java中文件中的信息,java,Java,这是我所拥有的,但文件一直覆盖了以前的信息。有没有一种方法可以将文件升级并写入文本文件,而无需将文件放入文件夹中 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.uti

这是我所拥有的,但文件一直覆盖了以前的信息。有没有一种方法可以将文件升级并写入文本文件,而无需将文件放入文件夹中

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Vector;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.*; 

public class cuscreport 
{
    List<String> fileList;
    private static final String INPUT_ZIP_FILE = "c:\\cusc031513.zip";
    private static final String OUTPUT_FOLDER = "C:\\temp\\test";
    Vector<String> v =new Vector<String>();

    public static void main( String[] args ) throws IOException
    {
        cuscreport unZip = new cuscreport();
        unZip.unZipIt(INPUT_ZIP_FILE,OUTPUT_FOLDER);
    }
    private  final static String getDate(  )   {  
        DateFormat df = new SimpleDateFormat( "yyyy-MM-dd" ) ;  
        df.setTimeZone( TimeZone.getTimeZone( "EST" )  ) ;  
        return ( df.format( new Date(  )  )  ) ;  
    }  

    /**
     * Unzip it
     * @param zipFile input zip file
     * @param output zip file output folder
     */
    public void unZipIt(String zipFile, String outputFolder) throws IOException
    {

        byte[] buffer = new byte[1024];

     try{

        //create output directory is not exists
        File folder = new File(OUTPUT_FOLDER);
        if(!folder.exists())
        {
            folder.mkdir();
        }

        //get the zip file content
        ZipInputStream zis = 
            new ZipInputStream(new FileInputStream(zipFile));
        //get the zipped file list entry
        ZipEntry ze= zis.getNextEntry();




        while(ze!=null){

           String fileName = ze.getName();
           File newFile = new File(outputFolder + File.separator + fileName);

           System.out.println("file unzip : "+ newFile.getAbsoluteFile());
           v.add(fileName);

            //create all non exists folders
            //else you will hit FileNotFoundException for compressed folder
            new File(newFile.getParent()).mkdirs();

           FileOutputStream fos = new FileOutputStream(newFile);             

            int len;
            while ((len = zis.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
            }

            fos.close(); 
            ze = zis.getNextEntry();
        }

        zis.closeEntry();
        zis.close();

        for(int x = 1; x < v.size()-1; x++ )
        {
             System.out.println(v.get(x));
             File inputFile = new File( outputFolder + File.separator +v.get(x));
             FileReader in = new FileReader(inputFile);
             File outputFile = new File("C:\\temp\\test\\cuscreport"+getDate()+".txt");
             int c;
             FileWriter out = new FileWriter(outputFile);
             while ((c = in.read()) != -1)
             {
                    out.write(c);
             }

                 in.close();
                 out.close();
        }



        System.out.println("Done");

    }catch(IOException ex){
       ex.printStackTrace(); 
    }
   }    
}
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.text.DateFormat;
导入java.text.simpleDataFormat;
导入java.util.List;
导入java.util.Vector;
导入java.util.zip.ZipEntry;
导入java.util.zip.ZipInputStream;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.util.*;
公共类cuscreport
{
列表文件列表;
私有静态最终字符串输入\u ZIP\u FILE=“c:\\CUSC03513.ZIP”;
私有静态最终字符串输出\u FOLDER=“C:\\temp\\test”;
向量v=新向量();
公共静态void main(字符串[]args)引发IOException
{
cuscreport unZip=新的cuscreport();
解压(输入文件,输出文件夹);
}
私有最终静态字符串getDate(){
DateFormat df=新的简化格式(“yyyy-MM-dd”);
df.setTimeZone(TimeZone.getTimeZone(“EST”));
返回(df.格式(新日期());
}  
/**
*解开它
*@param zipFile输入zip文件
*@param output zip文件输出文件夹
*/
public void unZipIt(字符串zipFile,字符串outputFolder)引发IOException
{
字节[]缓冲区=新字节[1024];
试一试{
//创建输出目录不存在
文件夹=新文件(输出文件夹);
如果(!folder.exists())
{
folder.mkdir();
}
//获取zip文件内容
ZipInputStream zis=
新的ZipInputStream(新的FileInputStream(zipFile));
//获取压缩文件列表条目
ZipEntry ze=zis.getNextEntry();
while(ze!=null){
字符串文件名=ze.getName();
File newFile=新文件(outputFolder+File.separator+fileName);
System.out.println(“文件解压缩:+newFile.getAbsoluteFile());
v、 添加(文件名);
//创建所有不存在的文件夹
//否则,您将点击压缩文件夹的FileNotFoundException
新文件(newFile.getParent()).mkdirs();
FileOutputStream fos=新FileOutputStream(新文件);
内伦;
而((len=zis.read(buffer))>0){
fos.写入(缓冲区,0,len);
}
fos.close();
ze=zis.getnextery();
}
zis.closeEntry();
zis.close();
对于(int x=1;x

这是我所拥有的,但文件一直覆盖了以前的信息。有没有一种方法可以将文件升级并写入文本文件,而无需将文件放入文件夹中

如果您查看,您将看到它有一个用于附加到文件的append变量

文件(至少在Java中)是一个物理磁盘概念-因此您的问题实际上自相矛盾。您可以选择将zip文件内容存储在内存中,例如,作为字节数组。这就是你想要完成的吗?你的意思是,写一个文本文件,而不是把文件放在一个文件夹中?如果不是文件夹,您希望文件放在哪里?还有,向量?
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Vector;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.*; 

public class cuscreport 
{
    List<String> fileList;
    private static final String INPUT_ZIP_FILE = "c:\\cusc031513.zip";
    private static final String OUTPUT_FOLDER = "C:\\temp\\test";
    Vector<String> v =new Vector<String>();

    public static void main( String[] args ) throws IOException
    {
        cuscreport unZip = new cuscreport();
        unZip.unZipIt(INPUT_ZIP_FILE,OUTPUT_FOLDER);
    }
    private  final static String getDate(  )   {  
        DateFormat df = new SimpleDateFormat( "yyyy-MM-dd" ) ;  
        df.setTimeZone( TimeZone.getTimeZone( "EST" )  ) ;  
        return ( df.format( new Date(  )  )  ) ;  
    }  

    /**
     * Unzip it
     * @param zipFile input zip file
     * @param output zip file output folder
     */
    public void unZipIt(String zipFile, String outputFolder) throws IOException
    {

        byte[] buffer = new byte[1024];

     try{

        //create output directory is not exists
        File folder = new File(OUTPUT_FOLDER);
        if(!folder.exists())
        {
            folder.mkdir();
        }

        //get the zip file content
        ZipInputStream zis = 
            new ZipInputStream(new FileInputStream(zipFile));
        //get the zipped file list entry
        ZipEntry ze= zis.getNextEntry();




        while(ze!=null){

           String fileName = ze.getName();
           File newFile = new File(outputFolder + File.separator + fileName);

           System.out.println("file unzip : "+ newFile.getAbsoluteFile());
           v.add(fileName);

            //create all non exists folders
            //else you will hit FileNotFoundException for compressed folder
            new File(newFile.getParent()).mkdirs();

           FileOutputStream fos = new FileOutputStream(newFile);             

            int len;
            while ((len = zis.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
            }

            fos.close(); 
            ze = zis.getNextEntry();
        }

        zis.closeEntry();
        zis.close();

        for(int x = 1; x < v.size()-1; x++ )
        {
             System.out.println(v.get(x));
             File inputFile = new File( outputFolder + File.separator +v.get(x));
             FileReader in = new FileReader(inputFile);
             File outputFile = new File("C:\\temp\\test\\cuscreport"+getDate()+".txt");
             int c;
             FileWriter out = new FileWriter(outputFile);
             while ((c = in.read()) != -1)
             {
                    out.write(c);
             }

                 in.close();
                 out.close();
        }



        System.out.println("Done");

    }catch(IOException ex){
       ex.printStackTrace(); 
    }
   }    
}