Specyficzne wczytywanie pliku

0

Otóż piszę program do symetrycznego podpisywania dokumentów. W związku z tym muszę stworzyć plik konkretnego formatu dokumentu. Najlepszym zabezpieczeniem dla formatów jest ograniczenie się do pewnych nagłówków (zmiana nagłówka automatycznie zmieni skrót dokumentu, zaś zmiana rozszerzenia - nie, stąd nie mogę sugerować się tylko rozszerzeniami).

Potrzebuję więc dwóch rzeczy:
-Wczytania 2 pierwszych znaków z pliku (heksadecymalnie, aby poznać, czy magic number pliku jest poprawny)
-po sprawdzeniu poprawności, wczytać cały plik (podobnie może być to heksadecymalne) i stworzyć jego skrót.

Czy może mi ktoś pomóc w znalezieniu klasy, która pozwoli mi na odczytanie tych 2 znaków, a następnie na wczytanie do jakiegoś bufora całego pliku?

0

java.io.FileInputStream

0

Dobrze, więc dla wszystkich, którym kiedyś może się to okazać potrzebne:

for (int i=0;i<4;i++) {
       in=input.read();
       header[i]=(char)Integer.parseInt(Integer.toHexString(in),16);
}

Powyzszy kod wszytuje pierwsze 4 bajty nagłówka, zawierające informację o pliku i umieszcza je w headerze, który jest tablicą charów. In to zwykły strumień wejściowy pliku. Następnie:

String headerstring = new String(header);
if(!headerstring.equals("%PDF")&&!headerstring.equals("PK")&&!headerstring.equals("ÐÏà")&&!headerstring.equals("{\rt")) parent.status = "Niepoprawny format pliku!! Wprowadź .doc, .rtf, .pdf lub .docx";

Te linijki tworzą stringa z nagłówkiem i weryfikują, czy jest on poprawny i zgodny z oczekiwanym. Oczywiście, jeśli chcecie sprawdzić, jaki nagłówek ma dany plik wystarczy go wcześniej wypluć na System.out

1 użytkowników online, w tym zalogowanych: 0, gości: 1