[Gukulkan]

Learn, develop, play.

Записать данные в временый фаил Java

В предыдущем посте мы просто создали фаил, без какого либо содержимого.
Теперь запишем туда пару строк

Пример:

1
2
3
4
5
6
7
8
try{
File tempFile = File.createTempFile("tempFile", ".tmp");
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(tempFile));
bufferedWriter.write("This is Test for tempFile!");
bufferedWriter.close();
}catch(IOException ex){
ex.printStackTrace();
}

Создание временого файла Java

Бывет моменты, когда вам надо создать файлы и записать туда данные чтоб не держать их в памяти.
На помошь приходит библиотека java.io.File

Пример:

1
2
3
4
5
6
try{
File tempFile = File.createTempFile("tempFileName", ".tmp");
System.out.println(tempFile.getAbsolutePath());
}catch(IOException ex){
ex.printStackTrace();
}

Будет создан фаил что-то типа tempFileName31231.tmp

Распаковать фаил GZip Java

В наше прошлом посте мы рассмотрели как запаковывать файлы в GZip средствами Java
Пришло время распаковать этот фаил

Пример:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String INPUT_FILE = "/home/user/fileArchive.gz";
String OUTPUT_FILE = "/home/user/fileText.txt";

byte[] buffer = new byte[1024];
try{
GZIPInputStream gZIPInputStream = new GZIPInputStream(new FileInputStream(INPUT_FILE));
FileOutputStream fileOutputStream = new FileOutputStream(OUTPUT_FILE);
int len;
while ((len = gZIPInputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, len);
}
gZIPInputStream.close();
fileOutputStream.close();

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

Архивация GZip Java

Уже был расмотрен пример архивации в zip файл, теперь рассмотрим GZip реализацию на Java

Пример:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private String OUTPUT_FILE = "/home/user/fileArchive.gz";
private String INPUT_FILE = "/home/user/fileText.txt";
 
byte[] buffer = new byte[1024];
try{
GZIPOutputStream gZIPOutputStream = new GZIPOutputStream(new FileOutputStream(OUTPUT_FILE));
 
FileInputStream fileInputStream = new FileInputStream(INPUT_FILE);
int len;
while ((len = fileInputStream.read(buffer)) > 0) {
gZIPOutputStream.write(buffer, 0, len);
}
fileInputStream.close();
gZIPOutputStream.finish();
gZIPOutputStream.close();

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

Распаковать Zip фаил Java

Распаковка файла Zip, немного сложнее чем упаковка.

Пример

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
String zipFile="C:\\MyFile.zip";
String outputFolder="C:\\outputzip";
 
byte[] buffer = new byte[1024];
try{

File folder = new File(outputFolder);
if(!folder.exists()){
 folder.mkdir();
}
ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile));

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

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();
 
System.out.println("Done");
 
}catch(IOException ex){
 ex.printStackTrace();
}

Zip архивация файла Java

В джава теперь есть возможность сделать архивацию самым простым способом, при помощи библиотек java.util.zip

Ниже пример

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
byte[] buffer = new byte[1024];
try{
FileOutputStream fileOutputStream = new FileOutputStream("C:\\myFile.zip");
ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream );
ZipEntry zipEntry = new ZipEntry("myLog.log");
zipOutputStream.putNextEntry(zipEntry );
FileInputStream fileInputStream= new FileInputStream("C:\\myLog.log");
int len;
while ((len = in.read(buffer)) > 0) {
zipOutputStream .write(buffer, 0, len);
}
in.close();
zipOutputStream.closeEntry();
zipOutputStream.close();

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

Масив байт в фаил Java

Как и в предыдущем примере мы будем использовать обычные библиотеки в этот раз FileOutputStream

Вот пример

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
FileInputStream fileInputStream=null;
 
File myFile = new File("C:\\myFile.txt");
 
byte[] byteFile = new byte[(int) myFile.length()];
 
try {

fileInputStream = new FileInputStream(myFile);
fileInputStream.read(byteFile);
fileInputStream.close();
 
FileOutputStream fileOuputStream = new FileOutputStream("C:\\toFile.txt");
fileOuputStream.write(bFile);
fileOuputStream.close();

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

Фаил в масив байт Java

Для генирации масива байт из файла мы будем использовать библиотеку FileInputStream

Вот простой пример этого

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FileInputStream fileInputStream=null;
 
File myFile = new File("C:\\myFile.txt");
 
byte[] byteFile = new byte[(int) myFile.length()];
 
try {
fileInputStream = new FileInputStream(myFile);
fileInputStream.read(byteFile);
fileInputStream.close();
 
for (int i = 0; i < byteFile.length; i++) {
System.out.print((char)byteFile[i]);
}

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