「Java」 マジックバイト(最初の4バイト)でzipファイルを判定するサンプル
最初の4バイト
50 4b 03 04
Javaコード
package com.arkgame.study.file; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class ZipFileHannten { public static int SIZE = 4; //マジックバイトの配列の定義 public static byte zipByte[] = { 'P', 'K', (byte) 0x03, (byte) 0x04 }; public static void main(String[] args) throws IOException { String strFile = "c:\\data\\test01.zip"; boolean isFlg = chkZipFile(strFile); System.out.println("指定ファイルがzipファイルか: "+isFlg); } @SuppressWarnings("resource") public static boolean chkZipFile(String strFile) throws FileNotFoundException,IOException { boolean result = true; InputStream ist = null; ist = new FileInputStream(strFile); byte[] cft = new byte[SIZE]; ist.read(cft); System.out.println("byte配列の要素:"); for (byte bb : cft) { System.out.println(bb); } //マジックバイト判定 for (int i = 0; i < zipByte.length; i++) { if (cft[i] != zipByte[i]) { result = false; } } return result; } }
実行結果
byte配列の要素:
80
75
3
4
指定ファイルがzipファイルか: true