Create Zip File

master
Hammy 4 years ago
parent 0ae80a9052
commit 3408d3565a

@ -0,0 +1,62 @@
package zip.file.system;
import java.io.BufferedWriter;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
public class Main {
private static final String root = "C:\\Users\\sgoud\\JavaProjects\\Learning-Java\\Pluralsite\\src\\intermediate\\Java Fundamentals - The Core Platform\\src\\zip\\file\\system\\";
private static final String rootResources = "C:\\Users\\sgoud\\JavaProjects\\Learning-Java\\Pluralsite\\src\\intermediate\\Java Fundamentals - The Core Platform\\resources\\";
public static void main(String[] args) {
String[] data = {
"Line 1",
"Line 2 2",
"Line 3 3 3",
"Line 4 4 4 4",
"Line 5 5 5 5 5"
};
try (FileSystem zipFs = openZip(Paths.get(root + "myData.zip"))) {
copyToZip(zipFs);
writeToFileInZip1(zipFs, data);
writeToFileInZip2(zipFs, data);
} catch (Exception e) {
e.printStackTrace();
}
}
private static FileSystem openZip(Path zipPath) throws IOException, URISyntaxException {
Map<String, String> providerProperties = Collections.singletonMap("create", "true");
URI zipURI = new URI("jar:file", zipPath.toUri().getPath(), null);
return FileSystems.newFileSystem(zipURI, providerProperties);
}
private static void copyToZip(FileSystem zipFs) throws IOException {
// Path sourceFile = FileSystems.getDefault().getPath("file1.txt");
Path sourceFile = Paths.get(rootResources + "file1.txt");
Path destinationFile = zipFs.getPath("/file1Copied.txt");
Files.copy(sourceFile, destinationFile, StandardCopyOption.REPLACE_EXISTING);
}
private static void writeToFileInZip1(FileSystem zipFs, String[] data) throws IOException {
try (BufferedWriter writer = Files.newBufferedWriter(zipFs.getPath("/newFile1.txt"))) {
for (String d : data) {
writer.write(d);
writer.newLine();
}
}
}
private static void writeToFileInZip2(FileSystem zipFs, String[] data) throws IOException {
Files.write(zipFs.getPath("/newFile2.txt"), Arrays.asList(data), Charset.defaultCharset(), StandardOpenOption.CREATE);
}
}
Loading…
Cancel
Save