So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array

◆ Hauptklasse

	public static void main(String[] args) {

		List<File> csvFileList = new ArrayList<File>();
		CsvCreater csvCreater = new CsvCreater();

		for (int i = 0; i < 5; i++) {
			csvFileList.add(csvCreater.createCsv());
		}

		//Konvertieren Sie CSV in Byte-Array
		ZipFileUtil zipFileUtil = new ZipFileUtil();
		String zipFileName = zipFileUtil.createZip(csvFileList);
		byte[] zipByteArray = zipFileUtil.zipToByteArray(zipFileName);

		//Stellen Sie das Byte-Array in ZIP wieder her
		EncodeZip encodeZip = new EncodeZip();
		encodeZip.write(zipByteArray);
	}

◆CSVCreater.java

public class CsvCreater {
	private Integer num = 0;

	public CsvCreater() {
		//TODO automatisch generierter Konstruktor-Stub
	}

	public File createCsv() {
		File csvFile = null;
		CSVWriter csvw = null;
		num += 1;
		try {
			csvFile = createFile(num);
			csvw = new CSVWriter(new FileWriter(csvFile), ",".charAt(0),
					"\"".charAt(0), "\"".charAt(0), "\r\n");

			List<String[]> outStrList = createDate();
			csvw.writeAll(outStrList);

			if (csvw != null) {
				csvw.close();
			}
			System.out.println("Erfolgreiche Bearbeitung");

		} catch (IOException e) {
			System.out.println("Verarbeitungsfehler");
			e.printStackTrace();
		} finally {
		}
		return csvFile;

	}

	public File createFile(Integer num) {
		Calendar cTime2 = Calendar.getInstance();
		String csvFileName = "tmp/csvFile" + cTime2.get(Calendar.SECOND) + "_" + num + ".csv";
		num = num + 1;
		return new File(csvFileName);
	}

	public List<String[]> createDate() {
		List<String[]> outDateList = new ArrayList<String[]>();
		String[] outStr = new String[100];
		Integer numnum;
		for (int k = 0; k < 5; k++) {
			for (int j = 0; j < 100; j++) {
				numnum = j * k;
				outStr[j] = numnum.toString();
			}
			outDateList.add(outStr);
		}
		return outDateList;
	}

}

◆ Zip-Datei Utill-Klasse

package csv;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class ZipFileUtil {

	public String createZip(List<File> fileList) {
		ZipOutputStream zos = null;
		Calendar cTime = Calendar.getInstance(); //[1]
		String zipFileName = "tmp/zipfile" + cTime.get(Calendar.SECOND) + ".zip";
		File file = new File(zipFileName);

		try {
			zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
			createZip2(zos, fileList);

			fileSizeCheck(file);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return zipFileName;
	}

	public void createZip2(ZipOutputStream zos, List<File> fileList) throws IOException {
		byte[] buf = new byte[1024];
		InputStream is = null;
		try {
			for (File file : fileList) {
				ZipEntry entry = new ZipEntry(file.getName());
				zos.putNextEntry(entry);
				is = new BufferedInputStream(new FileInputStream(file));
				int len = 0;
				while ((len = is.read(buf)) != -1) {
					zos.write(buf, 0, len);
				}
			}

			is.close();
			zos.closeEntry();
		} catch (IOException e) {
			e.printStackTrace();
		}
		zos.close();

	}

	public void fileSizeCheck(File file) {
		long fileSize = file.length() / 1024;
		if (fileSize > 0) {
			System.out.println("Datei:" + file.getName());
			System.out.println("Dateigröße:" + fileSize + "KB");

		} else {
			System.out.println("Unzulässige Datei: 1 KB");

		}

	}

	public byte[] zipToByteArray(String zipFileName) {
		File file = new File(zipFileName);
		try {
			InputStream inputStream = new FileInputStream(file);

			return getBytes(inputStream);

		} catch (FileNotFoundException e) {
			//TODO automatisch generierter Fangblock
			e.printStackTrace();
		}
		return null;

	}

	/**
	*Konvertieren Sie InputStream in ein Byte-Array
	*
	* @param is
	* @Byte-Array zurückgeben
	*/
	public byte[] getBytes(InputStream is) {
		//Eine Klasse, deren Ausgabeziel ein Array vom Typ Byte ist.
		//Normalerweise wird der Byte-Ausgabestream in eine Datei oder einen Socket ausgegeben.
		//Die ByteArrayOutputStream-Klasse ist ein Byte[]Das Ausgabeziel ist eine Variable, dh ein Speicher.
		ByteArrayOutputStream b = new ByteArrayOutputStream();
		OutputStream os = new BufferedOutputStream(b);
		int c;
		try {
			while ((c = is.read()) != -1) {
				os.write(c);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (os != null) {
				try {
					os.flush();
					os.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

		//Das Schreibziel befindet sich in der ByteArrayOutputStream-Klasse.
		//Wenn Sie diese geschriebenen Bytedaten als Array vom Typ Byte extrahieren,
		// toByteArray()Rufen Sie die Methode auf.
		return b.toByteArray();
	}
}
```

◆EncodeZip

```java
package csv.day0114;

import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class EncodeZip {

	public EncodeZip() {
		//TODO automatisch generierter Konstruktor-Stub
	}

	public void write(byte[] byteData) {

		File outputImageFile = new File("tmp/outfile2.zip");
		InputStream inputStream = new ByteArrayInputStream(byteData);

		OutputStream os = null;
		try {
			os = new BufferedOutputStream(new FileOutputStream(outputImageFile));
			int c;
			while ((c = inputStream.read()) != -1)
				os.write(c);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (os != null) {
				try {
					os.flush();
					os.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
```

 ◆ Löschen des Verzeichnisses (rekursiv)

```java
	public void dirDelete(File TestFile) {
		if (TestFile.exists()) {

			//Überprüfung der Dateiexistenz
			if (TestFile.isFile()) {
				//Löschen, falls vorhanden
				if (TestFile.delete()) {
					System.out.println("Datei löschen:" + TestFile.getName());
					this.j++;
				} else {
					System.out.println("Die Datei existiert nicht:" + TestFile.getName());
				}
				//Wenn das Ziel ein Verzeichnis ist
			} else if (TestFile.isDirectory()) {

				//Holen Sie sich die Liste in das Verzeichnis
				File[] files = TestFile.listFiles();

				//Schleife für die Anzahl der vorhandenen Dateien und rekursiv löschen
				for (int i = 0; i < files.length; i++) {
					dirDelete(files[i]);
				}
				System.out.println("Ziel gelöscht werden:" + files.length + "Anzahl der Löschungen:" + this.j);

			}
		} else {
			System.out.println("Verzeichnis existiert nicht");
		}
	}
```


Recommended Posts

So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
So konvertieren Sie eine Datei in ein Byte-Array in Java
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So erstellen Sie ein Java-Array
Konvertieren Sie ein Java-Byte-Array in eine hexadezimale Zeichenfolge
So entwickeln und registrieren Sie eine Sota-App in Java
So lesen Sie eine Datei und behandeln sie als Standardeingabe
So testen Sie eine private Methode und verspotten sie teilweise in Java
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
So erstellen Sie eine Zip-Datei beim Gruppieren von Datenbanksuchergebnissen in Java
So zeichnen Sie JFR (Java Flight Recorder) auf und geben eine Dump-Datei aus
[Java] [Für Anfänger] So fügen Sie Elemente direkt in ein zweidimensionales Array ein
So zeigen Sie eine Webseite in Java an
<java> Zip-Datei lesen und direkt in String konvertieren
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So springen Sie von Eclipse Java zu einer SQL-Datei
Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
Umgang mit TSV-Dateien und CSV-Dateien in Ruby
So verwalten Sie Java EE-Projekte in Eclipse
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
So initialisieren Sie ein Java-Array
Erstellen Sie ein Java-Servlet und eine JSP-WAR-Datei für die Bereitstellung auf Apache Tomcat 9 mit Gradle
So fordern Sie mit jMeter eine CSV-Datei als JSON an
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
Weisen Sie Variablen Java8-Lambda-Ausdrücke zu und verwenden Sie sie erneut
[Java] Ich möchte ein Byte-Array in eine Hexadezimalzahl konvertieren
So ändern Sie eine Zeichenfolge in einem Array in eine Zahl in Ruby
Lesen Sie WAV-Daten als Byte-Array unter Android Java
Speichern von Zeichenfolgen von ArrayList zu Zeichenfolge in Java (Personal)
Was ist in "Java 8 bis Java 11" passiert und wie wird eine Umgebung erstellt?
Aufrufen und Verwenden der API in Java (Spring Boot)
Java-Sprachfunktion und wie sie einen subtilen Fehler verursachte
So fügen Sie dieselben Indizes in ein verschachteltes Array ein
So simulieren Sie das Hochladen von Post-Object-Formularen in OSS in Java
Unterschiede im Umgang mit Zeichenfolgen zwischen Java und Perl
So schreiben Sie Kommentare in die Schemadefinitionsdatei in GraphQL Java und spiegeln sie in GraphiQL und GraphQL Playground wider
So erstellen Sie einen Java-Container
Wie man JAVA in 7 Tagen lernt
Entpacken Sie die Zip-Datei in Java
Protokollausgabe in Datei in Java
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
So verketten Sie Zeichenfolgen mit Java
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
So implementieren Sie einen Job, der die Java-API in JobScheduler verwendet
So erstellen Sie ein neues Gradle + Java + Jar-Projekt in Intellij 2016.03
So bedienen Sie automatisch einen in Java unter Windows erstellten Bildschirm
So laden Sie eine Spring-Upload-Datei und zeigen ihren Inhalt an
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
Lesen Sie Elemente mit Kommas in CSV-Dateien ohne Aufteilung (Java).
So ermitteln Sie die Länge einer Audiodatei mit Java
[Java] So suchen Sie mit der Methode includes nach Werten in einem Array (oder einer Liste)
Konvertieren Sie Excel mit Java in Blob, speichern Sie es, lesen Sie es aus der Datenbank und geben Sie es als Datei aus!
So erstellen Sie eine Java-Kalenderzusammenfassung
Bei der Suche nach mehreren in einem Java-Array