[Gukulkan]

Learn, develop, play.

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

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

Пример:

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

Пример:


try{
File tempFile = File.createTempFile("tempFileName", ".tmp");
System.out.println(tempFile.getAbsolutePath());
}catch(IOException ex){
ex.printStackTrace();
}

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

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

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

Пример:

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

Пример:

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, немного сложнее чем упаковка.

Пример


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

Ниже пример


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

Вот пример

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

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


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