RandomAccessFile i wątki

0

witam mam pytanie muszę jakoś podzielić plik na części klasą RandomAccessFile w wątkach ilość wątków ma odpowiadać ilościom części i poskładać to do kupy również w wątkach (wszystko jest przesyłane przez sieć) i tu zaczynają się schody wiem jak przesłać plik bez dzielenia go na części jednak z podziałem nie mam pomysłu jak to zrobić [glowa]

wiecie jak to zrobić ?

0
public class MojPlikDoPrzeslania{
    int nrCzesci;
    String trescCzesci;
}

Jeden wątek czyta plik i dzieli go na części. Części wstawia do kolejki FIFO. Następnie kilka wątków pobiera części z FIFO i wysyła do odbiorców. Odpiorcy zapisują wątki do listy. Następnie wątek scalający sortuje listę po nrCzesci i odtwarza treść pliku.

0

niby tak tylko że dane muszę czytać bajt po bajcie w sumie już doSZEDŁem jak to zrobić tylko problem w tym że nie wiem jak przesłać dane ze zmiennej byte przez socket w javie

ServerSocket s=new ServerSocket(port);
            Socket socket=s.accept();
            BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
           
            PrintWriter out=new PrintWriter(socket.getOutputStream(),true);

PrintWriter odbiera tylko dane w Stringach na plikach tekstowych to działa ale kiedy chce się przesłać pliki wykonywalne to je po prostu źle składa do kupy.

0
bicluc napisał(a)

niby tak tylko że dane muszę czytać bajt po bajcie w sumie już doSZEDŁem jak to zrobić tylko problem w tym że nie wiem jak przesłać dane ze zmiennej byte przez socket w javie

ServerSocket s=new ServerSocket(port);
            Socket socket=s.accept();
            BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
           
            PrintWriter out=new PrintWriter(socket.getOutputStream(),true);

PrintWriter odbiera tylko dane w Stringach na plikach tekstowych to działa ale kiedy chce się przesłać pliki wykonywalne to je po prostu źle składa do kupy.

Nie używaj BufferedReader i PrintWriter, a bezpośrednio InputStream i OutputStream (otrzymane za pomocą socket.getInputStream() i socket.getOutputStream()).

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