pobranie binarnego pliku z HTTP
R - 02-06-2006 00:46
pobranie binarnego pliku z HTTP
Witam grupowiczow.
Mam problem z pobraniem binarnego pliku.
aby latwo mozna bylo to sprawdzic - sciagam sobie obrazek i zapisuje go lokalnie.
plik ma dokladnie ten sam rozmiar co plik na serwerze, ale jest rozwalony (czarny, tylko pierwszy rzad pikseli wydaje sie byc dobry).
Jak poprawnie pobrac binarny plik z sieci?
moj kod ponizej
bylbym wdzieczny za wszelka pomoc
pzdr R
URL url = new URL("http://jakarta.apache.org/poi/resources/images/group-logo.gif");
InputStreamReader in = new InputStreamReader(url.openStream());
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("logo.gif"));
// ten sam rezultat byl jak odpalalem: //FileWriter out = new FileWriter("logo.gif"); int c;
while ((c = in.read()) != -1) out.write(c);
in.close(); out.close();
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Brzezi - 02-06-2006 00:46
czw, 01 cze 2006 o 23:51 GMT, R napisał(a):
> InputStreamReader in = new InputStreamReader(url.openStream());
z dokumentacji do ww. klasy: "An InputStreamReader is a bridge from byte streams to character streams:"
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ brzezi:~# uptime ] [ Ekg: #3781111 ][ 00:31:56 up 38 days, 14:38, 4 users, ] [ LinuxUser: #249916 ][ load average: 3.12, 2.51, 2.51 ]
janu - 03-06-2006 00:14
Też miałem z tym problem i do zaciągania użyłem DataInputStream, a do zapisu DataOutput Stream. Ściąga on ze strumienia 1 integer, dopisać nim można również jeden integer. Z dotychczasowych rezultatów jestem zadowolony, więc polecam użycia tej klasy.
Pozdrawiam Jachu
Brzezi - 03-06-2006 00:14
pią, 02 cze 2006 o 10:47 GMT, janu napisał(a):
> Też miałem z tym problem i do zaciągania użyłem DataInputStream, a > do zapisu DataOutput Stream. Ściąga on ze strumienia 1 integer, > dopisać nim można również jeden integer. Z dotychczasowych > rezultatów jestem zadowolony, więc polecam użycia tej klasy.
To jest troche bez senus, on potrzebuje CZYSTEGO BINARNEGO strumienia..., ewentualnie obuforowanego, nic wiecej...
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ Wy tam z LN, lepiej zrzucajcie szybko ] [ Ekg: #3781111 ][ ten news o niedzia\xB3aj\xB1cym SO, bo ] [ LinuxUser: #249916 ][ b\xEAdziecie ostatni in the know ;-PP ]
janu - 03-06-2006 00:15
Uwierz mi, że ja bawiłem się trochę z tym szitem, i zaciąganie zwykłym InputStreamem nie wystarczało. Dopiero użycie tej klasy okazało się działającym. Ale oczywiście mogę się mylić.
Pozdrawiam Janu
Brzezi wrote: > pią, 02 cze 2006 o 10:47 GMT, janu napisał(a): > > > Też miałem z tym problem i do zaciągania użyłem DataInputStream, a > > do zapisu DataOutput Stream. Ściąga on ze strumienia 1 integer, > > dopisać nim można również jeden integer. Z dotychczasowych > > rezultatów jestem zadowolony, więc polecam użycia tej klasy. > > To jest troche bez senus, on potrzebuje CZYSTEGO BINARNEGO strumienia..., > ewentualnie obuforowanego, nic wiecej... > > Pozdrawiam > Brzezi > -- > [ E-mail: brzezi@enter.net.pl ][ Wy tam z LN, lepiej zrzucajcie szybko ] > [ Ekg: #3781111 ][ ten news o niedzia\xB3aj\xB1cym SO, bo ] > [ LinuxUser: #249916 ][ b\xEAdziecie ostatni in the know ;-PP ]
Brzezi - 03-06-2006 00:15
pią, 02 cze 2006 o 10:56 GMT, janu napisał(a):
> Uwierz mi,
przykro mi ale nie wierze,
> że ja bawiłem się trochę z tym szitem, i zaciąganie > zwykłym InputStreamem nie wystarczało. Dopiero użycie tej klasy > okazało się działającym. Ale oczywiście mogę się mylić.
to miales duze szczescie ze to dzialalo, z dokumentacji klasy DataInputStream:
"A data input stream lets an application read primitive Java data types from an underlying input stream"
czy to sa dane binarne? tzn tak, ale nie CZYSTE, tylko "javowe"
do czytania danych binarnych, np. pliku binarnego uzywa sie strumieni binarnych InputStream i jego metod read
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ GEEK CODE [Version: 3.12]: GCM dpu s+:- ] [ Ekg: #3781111 ][ a--- C+++ UL++ P+ L+++ E--- W+++ N+++ ] [ LinuxUser: #249916 ][ o-- K- w--- O-- M- V- PS PE Y PGP--- t+ ] [ 5- X++ R* tv+ b- DI- D+ G+ e- h! r y-- ]
janu - 03-06-2006 00:15
Przyznaję rację i zwracam honor.
Pozdrawiam Janu
Brzezi wrote: > pią, 02 cze 2006 o 10:56 GMT, janu napisał(a): > > > Uwierz mi, > > przykro mi ale nie wierze, > > > że ja bawiłem się trochę z tym szitem, i zaciąganie > > zwykłym InputStreamem nie wystarczało. Dopiero użycie tej klasy > > okazało się działającym. Ale oczywiście mogę się mylić. > > to miales duze szczescie ze to dzialalo, z dokumentacji klasy > DataInputStream: > > "A data input stream lets an application read primitive Java data types > from an underlying input stream" > > czy to sa dane binarne? tzn tak, ale nie CZYSTE, tylko "javowe" > > > do czytania danych binarnych, np. pliku binarnego uzywa sie strumieni > binarnych InputStream i jego metod read > > Pozdrawiam > Brzezi > -- > [ E-mail: brzezi@enter.net.pl ][ GEEK CODE [Version: 3.12]: GCM dpu s+:- ] > [ Ekg: #3781111 ][ a--- C+++ UL++ P+ L+++ E--- W+++ N+++ ] > [ LinuxUser: #249916 ][ o-- K- w--- O-- M- V- PS PE Y PGP---t+ ] > [ 5- X++ R* tv+ b- DI- D+ G+ e- h! r y-- ]
clyde - 03-06-2006 00:15
janu napisał(a): > Uwierz mi, że ja bawiłem się trochę z tym szitem, i zaciąganie > zwykłym InputStreamem nie wystarczało. Dopiero użycie tej klasy > okazało się działającym. Ale oczywiście mogę się mylić.
W momencie urzycia metody InputStream.read(byte[]) lub InputStream.read(byte[],int off,int len) W zasadzie nie ma gwarancji ze cala tablica lub rzadana wielkosc zostanie wczytana Trzeba o dopelnienie tablicy zadbac samemu.
--
clyde
R - 03-06-2006 00:15
Witam,
w sumie to:
DataInputStream in = new DataInputStream(url.openStream()); DataOutputStream out = new DataOutputStream(new FileOutputStream("tmp.jpg"));
int c;
while ((c = in.read()) != -1) out.write(c);
in.close(); out.close();
dziala dla obrazkow GIF, JPEG, PNG a glownie mi chodzilo o mozliwosc sciagania wlasnie zdjec.
pzdr R
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Brzezi - 03-06-2006 00:15
pią, 02 cze 2006 o 12:08 GMT, R napisał(a):
> dziala dla obrazkow GIF, JPEG, PNG a glownie mi chodzilo o mozliwosc > sciagania wlasnie zdjec.
dziala tylko dlatego, ze odczytujesz z Data* i zapisujesz do Data*, ale do danych czysto binarnych jest to bez sensu, poniewaz strumienie Data* moga powodowac dodatkowe konwersje przy wczytywaniu danych i potem znowu przy ich zapisywaniu, poniewaz zapisywane sa typy javowe, a nie czyste bajty...
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ Programming Department: ] [ Ekg: #3781111 ][ Mistakes made while you wait. ] [ LinuxUser: #249916 ][ ]
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
używam czcionki wielkości 1296 pt na pliku o wielkości 800x600
=?iso-8859-2?q?Pro=B6ba_o_konwersj=EA_pliku_CDR_do_wersji_11_ lub_ni=BFszej?=
[MySQL]: Odzyskanie z pliku zawierającego wiele baz danych tylko jednej wybranej bazy
Skrypt przeszukujacy dwa pliki tekstowe i dopisujacy zadane znaki do drugiego pliku
=?iso-8859-2?Q?Program_do_kompresji_JPG_z_podaniem_wielko=B6c i_pliku?=
=?iso-8859-2?q?Eksport_do_pliku_z_nag=B3=F3wkami_kolumn?=
[MS SQL 2005 EX] Podmiana pliku bazy danych
import danych z pliku txt do Oracle-10g problem daty
Jak wyciągnąć fragment grafiki (klatka, kilka sekund video) z pliku
[PHP] wysylanie pliku na serwer, a inkrementacja nazwy plikow
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|