1. URL
kelas
Kita wis sinau nggarap stream I/O. Kita wis sinau nggarap file. Apa sing kudu kita sinau sabanjure? Kepiye babagan nggarap jaringan, kalebu Internet? Muni janjeni, ora iku?
Ing Jawa, nggarap Internet ora luwih angel tinimbang nggarap file. Inggih, mbok menawi namung sekedhik.
Kanggo nggarap sumber daya Internet, Jawa nduweni kelas khusus — URL
. Iku minangka prasaja minangka dhingklik, minangka saiki sampeyan bakal weruh.
Njupuk kaca web
Pira baris kode sampeyan mikir sampeyan kudu nulis kanggo ngundhuh sawetara file teks saka Internet lan nampilake isine ing layar? 10? 100? 1000? Utawa mungkin 5?
Kode | Cathetan |
---|---|
|
Nggawe obyek URL kanthi path menyang kaca Entuk InputStream saka obyek URL Maca kabeh bita lan ngasilake array bita Ngonversi array menyang senar Nampilake senar |
Isi file HTML bakal ditampilake ing layar:
Output konsol |
---|
|
Mbandingaken nggarap File
lanURL
URL
iku padha File
utawa Path
, nanging Path
nyimpen path menyang sumber ing sistem file, lan URL
nyimpen path menyang sumber ing Internet.
Kabeh Piandel mengkono nalika kita njaluk InputStream
obyek thanks kanggo telpon siji kanggo openStream()
cara. Iki minangka obyek biasa, lan kita wis sinau ing njero lan njaba. Kabeh dadi ketok sawise kita njaluk InputStream
obyek. Sawise kabeh, kita wis ngerti carane njaluk data saka iku.
Deleng: mung rong baris pisanan sing beda, lan mung rada. Lan saiki sampeyan bisa ndeleng - kauntungan saka standarisasi lan nggarap rantai aliran data:
Nggarap Internet | Nggarap file |
---|---|
|
|
2. URLConnection
kelas
Saliyane mung maca data saka Internet, kita uga bisa ngunggah data. Ngunggah data luwih rumit tinimbang maca. Sampeyan bakal mbutuhake sawetara cara liyane. Tuladhane:
Kode | Cathetan |
---|---|
|
Nggawe obyek URL kanthi path menyang kaca Nggawe sambungan rong arah Entuk stream output Lebokake data Entuk stream input Waca data saka iku |
Elinga yen kita ora nelpon maneh url.openStream()
cara ing kene. Nanging, kita njupuk rute sing luwih dawa:
- Kita pisanan nggawe sambungan rong arah sing stabil kanthi nggunakake
URLConnection.openConnection()
metode kasebut - Banjur kita entuk stream kanggo ngirim data nggunakake
connection.getOutputStream()
metode lan ngirim data menyang server - Banjur kita entuk stream kanggo maca data nggunakake
connection.getInputStream()
metode kasebut lan miwiti maca data saka iku.
Manajemen sumber daya
Tegese, kita kudu mbungkus kabeh aliran ing try-with-resources
blok supaya bisa ditangani kanthi aman. Lan ora bakal natoni kanggo mbungkus gundhul InputStream
lan OutputStream
kanthi luwih trep. Contone, ing PrintStream
lan BufferedReader
.
Yen kita nindakake kabeh, kode kita bakal katon kaya iki:
URL url = new URL("https://codegym.cc");
URLConnection connection = url.openConnection();
// Send data
try (OutputStream output = connection.getOutputStream();
PrintStream sender = new PrintStream(output))
{
sender.println("Hello");
}
// Read data
try(InputStream input = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input)))
{
while (reader.ready())
System.out.println(reader.readLine());
}
3. Conto nggarap jaringan
Ayo download soko saka Internet. Lan ora mung ngundhuh, nanging nyimpen menyang disk.
Contone, ayo nulis program sing nyimpen gambar saka homepage Google menyang disk.
Ing asas, ora ana sing rumit ing kene. Ing wangun sing paling gampang, kode iki bakal katon kaya iki:
Nyimpen file menyang disk |
---|
|
Kanthi bantuan saka telung baris pisanan, kita nampa stream data saka sumber Internet - saka gambar.
Ing baris kaping papat, kita nggawe jeneng file sing bakal disimpen gambar kasebut. Jeneng bisa apa wae, nanging ekstensi file kudu cocog karo ekstensi gambar ing Internet. Sing bakal ngidini pamirso gambar lokal mbukak kanthi bener.
Lan pungkasane, baris pungkasan minangka salah sawijining metode Files
kelas copy
. Kelas kasebut Files
duwe sawetara. Cara iki, sing digunakake, njupuk stream byte ( InputStream
) minangka parameter pisanan, lan minangka parameter kapindho - jeneng file ing ngendi data kudu ditulis.
Secara teoritis, yen URL
gambar kasebut cendhak, kode iki bisa uga ditulis ing baris siji:
Nyalin data saka stream menyang file |
---|
|
Mesthi, sampeyan ora kudu nulis kaya iki, nanging conto iki nuduhake carane trep lan kuat I / O stream ing Jawa.