0
여기에 파일이 있지만 이전 정보를 덮어 씁니다. 거기에 그냥 파일을 업 그레 이드하고 실제 파일을 폴더에 넣지 않고 파일을 텍스트 파일에 쓰는 방법이 있습니까?여러 txt 파일로 zip 파일의 압축을 풀고 새 txt 파일로 바꾸려면 어떻게해야합니까?
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();
}
}
}
여기에 파일이 있지만 이전 정보를 덮어 씁니다. 거기에 그냥 파일을 업 그레 이드하고 실제 파일을 폴더에 넣지 않고 파일을 텍스트 파일에 쓰는 방법이 있습니까? 당신이 JavaDocs for FileWriter 보면
파일에 추가하는 데 사용되는 APPEND 변수를 가지고 있음을 볼 수 있습니다 - 그래서 당신의 질문은 정말 자신을 모순. zip 파일 내용을 메모리에 저장하는 옵션이 있습니다 (예 : 바이트 배열). 그게 당신이 성취하려고하는 것입니까? – Perception
파일을 폴더에 넣지 않고 텍스트 파일에 쓰는 것은 무엇을 의미합니까? 폴더가 아니라면 어디로 파일을 이동 하시겠습니까? 또한, 벡터? –