Próbuję napisać funkcję, która pobiera parametry obiektu File, offset i tablica bajtów i zapisuje tę tablicę bajtów do obiektu File w Javie.Przesyłanie Java OutputStream (offset)
więc funkcja będzie wyglądać
public void write(File file, long offset, byte[] data)
Ale problemem jest to, że przesunięcie parametrem jest typ długi, więc nie mogę używać write (stanowisko) OutputStream, który bierze całkowitą jako offset.
W przeciwieństwie do InputStream, który ma pomijanie (long), wydaje się, że OutputStream nie ma możliwości pominięcia pierwszych bajtów pliku.
Czy istnieje dobry sposób na rozwiązanie tego problemu?
Dziękuję.
Największa liczba, jaką można wstawić do "int" to 2 147 483 647. Czy tablice, które chcesz napisać, są większe niż + - 2 GB? –
Tylko dla wyjaśnienia: przesunięcie dotyczy tylko pozycji w * tablicy *, a nie strumienia wyjściowego, prawda? W OutputStream nie można pominąć pozycji. –
@TheNail offset odnosi się do przesunięcia od początku pliku, a nie do początku tablicy. I jeśli nie używasz FAT jako systemu plików, możesz mieć pliki większe niż 2 GB. – Dunes