Perbezaan antara inputstream dan outputstream di java
Feb 07, 2025 am 11:52 AM
dan InputStream
kedua -dua kelas abstrak yang digunakan untuk mengakses dataset yang mendasari. Mereka adalah API yang menentukan operasi untuk urutan data tertentu, dilaksanakan melalui beberapa langkah. OutputSteam
Susun semula dataset ke dalam aliran bait yang diperintahkan untuk membaca data dari fail atau rangkaian. Pulangan -1 pada akhir aliran (Java tidak mempunyai jenis data byte unsigned). InputStream
kemudian menerima bait output dan menulisnya ke sasaran. Ia adalah kaedah yang paling asas untuk menulis satu output byte tunggal. Artikel ini akan membandingkan perbezaan antara kedua -dua aliran ini dan menerangkannya dalam kombinasi dengan aplikasi praktikal. OutputStream
FileOutputStream fileOut = new FileOutputStream("ARBRDD.txt");Contoh Output
Perbezaan antara
<code>file is successfully updated today!!</code>
dan InputStream
Ciri -ciri
OutputStream
Data Baca/Tulis
Gunakan baca ()
, baca (byte [])
, baca (byte [], int, int)
/td>
Tulis data menggunakan write (int)
, write (byte [])
, write (byte [], int, int)
aliran data
aliran data dari sumber ke aplikasi
aliran data dari aplikasi ke sasaran
Jenis data
bait boleh dibaca
bait, aksara, atau objek yang boleh ditulis (menggunakan subkelas)
Sambungan data
3
3
cara menggunakan
Gunakan fungsi FileInputStream
dan FileOutputStream
.
Algoritma
Algoritma ini menerangkan aliran kerja kelas aliran. Mula -mula mengisytiharkan dan tetapkan urutan sisipan (contohnya, menggunakan kelas pemasa). Hasil input kemudiannya dinilai oleh traversal panjang yang meleleh.
- Langkah 1 - Mulakan proses.
- Langkah 2 - Mengisytiharkan aliran input dan output.
- Langkah 3 - mengimport kelas terbina dalam dan fungsi yang diisytiharkan.
- Langkah 4 - mengisytiharkan kelas awam.
- Langkah 5
- Tetapkan fungsi.
- Langkah 6 - Lakukan operasi penyisipan.
- Langkah 7 - Mengisytiharkan senarai array dan isi.
- Langkah 8 - mengisytiharkan nilai set.
- Langkah 9 - Cetak nilai mengikut urutan penyisipan.
- Langkah 10 - mengisytiharkan gelung untuk melaraskan proses.
- Langkah 11 - Tetapkan nilai pemasa.
- Langkah 12 - Jalankan proses dan dapatkan nilai output.
- Langkah 13 - Menamatkan proses.
Tatabahasa
Syntax menerangkan cara mengisytiharkan proses sebagai batal untuk menandakan dan melangkau proses Boolean. Selepas itu, kami akan menetapkan semula proses untuk menjejaki nilai timbunan dengan memaksa kelas pengecualian.
FileOutputStream fileOut = new FileOutputStream("ARBRDD.txt");
Gunakan dan FileInputStream
kaedah FileOutputStream
Kaedah ini menggunakan kaedah dan FileInputStream
untuk melakukan streaming pada koleksi. FileOutputStream
Contoh
Kod ini menggunakan fail teks untuk menulis rentetan kepadanya melalui fungsi Stream Java. Blok tangkapan diisytiharkan dalam proses ini untuk mengendalikan pengecualian.
<code>file is successfully updated today!!</code>
output
public class NewClass {
public static void main(String[] args) throws Exception {
InputStream processARBRDD = null;
try {
processARBRDD = new FileInputStream("FILE_NAME.txt");
// PRINT METHOD
processARBRDD.mark(0);
processARBRDD.skip(1);
// PRINT METHOD
boolean check = processARBRDD.markSupported();
if (processARBRDD.markSupported()) {
processARBRDD.reset();
// PRINT METHODS
} else {
// PRINT METHODS
}
} catch (Exception excpt) {
excpt.printStackTrace();
} finally {
if (processARBRDD != null) {
processARBRDD.close();
}
}
}
}
Kesimpulan
Aliran
digunakan untuk menulis data ke array byte. Dalam topik ini, kami menggunakan fungsi aliran yang berbeza untuk mewujudkan hubungan antara data dan kod. ByteArray
Atas ialah kandungan terperinci Perbezaan antara inputstream dan outputstream di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
OutputStream
baca ()
, baca (byte [])
, baca (byte [], int, int)
/td>
write (int)
, write (byte [])
, write (byte [], int, int)
cara menggunakan
Gunakan fungsi FileInputStream
dan FileOutputStream
.
Algoritma
Algoritma ini menerangkan aliran kerja kelas aliran. Mula -mula mengisytiharkan dan tetapkan urutan sisipan (contohnya, menggunakan kelas pemasa). Hasil input kemudiannya dinilai oleh traversal panjang yang meleleh.
- Langkah 1 - Mulakan proses.
- Langkah 2 - Mengisytiharkan aliran input dan output.
- Langkah 3 - mengimport kelas terbina dalam dan fungsi yang diisytiharkan.
- Langkah 4 - mengisytiharkan kelas awam.
- Langkah 5
- Tetapkan fungsi. - Langkah 6 - Lakukan operasi penyisipan.
- Langkah 7 - Mengisytiharkan senarai array dan isi.
- Langkah 8 - mengisytiharkan nilai set.
- Langkah 9 - Cetak nilai mengikut urutan penyisipan.
- Langkah 10 - mengisytiharkan gelung untuk melaraskan proses.
- Langkah 11 - Tetapkan nilai pemasa.
- Langkah 12 - Jalankan proses dan dapatkan nilai output.
- Langkah 13 - Menamatkan proses.
Syntax menerangkan cara mengisytiharkan proses sebagai batal untuk menandakan dan melangkau proses Boolean. Selepas itu, kami akan menetapkan semula proses untuk menjejaki nilai timbunan dengan memaksa kelas pengecualian.
FileOutputStream fileOut = new FileOutputStream("ARBRDD.txt");Gunakan
dan FileInputStream
kaedah FileOutputStream
Kaedah ini menggunakan kaedah dan FileInputStream
untuk melakukan streaming pada koleksi. FileOutputStream
Kod ini menggunakan fail teks untuk menulis rentetan kepadanya melalui fungsi Stream Java. Blok tangkapan diisytiharkan dalam proses ini untuk mengendalikan pengecualian.
<code>file is successfully updated today!!</code>output
public class NewClass { public static void main(String[] args) throws Exception { InputStream processARBRDD = null; try { processARBRDD = new FileInputStream("FILE_NAME.txt"); // PRINT METHOD processARBRDD.mark(0); processARBRDD.skip(1); // PRINT METHOD boolean check = processARBRDD.markSupported(); if (processARBRDD.markSupported()) { processARBRDD.reset(); // PRINT METHODS } else { // PRINT METHODS } } catch (Exception excpt) { excpt.printStackTrace(); } finally { if (processARBRDD != null) { processARBRDD.close(); } } } }Kesimpulan
Aliran
digunakan untuk menulis data ke array byte. Dalam topik ini, kami menggunakan fungsi aliran yang berbeza untuk mewujudkan hubungan antara data dan kod. ByteArray
Atas ialah kandungan terperinci Perbezaan antara inputstream dan outputstream di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Terdapat tiga kaedah umum untuk melintasi Peta di Java: 1. Gunakan entriSet untuk mendapatkan kunci dan nilai pada masa yang sama, yang sesuai untuk kebanyakan senario; 2. Gunakan kekunci atau nilai untuk melintasi kekunci atau nilai masing -masing; 3. Gunakan Foreach Java8 untuk memudahkan struktur kod. EntrySet mengembalikan set set yang mengandungi semua pasangan nilai utama, dan setiap gelung mendapat objek peta.Entry, sesuai untuk akses kerap ke kunci dan nilai; Jika hanya kekunci atau nilai yang diperlukan, anda boleh memanggil kekunci () atau nilai () masing -masing, atau anda boleh mendapatkan nilai melalui map.get (kunci) apabila melintasi kunci; Java 8 boleh menggunakan foreach ((kunci, nilai)-& gt

Di Java, setanding digunakan untuk menentukan peraturan penyortiran lalai secara dalaman, dan komparator digunakan untuk menentukan pelbagai logik penyortiran secara luaran. 1.Sampar adalah antara muka yang dilaksanakan oleh kelas itu sendiri. Ia mentakrifkan susunan semula jadi dengan menulis semula kaedah CompareTo (). Ia sesuai untuk kelas dengan kaedah penyortiran tetap dan paling biasa digunakan, seperti rentetan atau integer. 2. Sempadan adalah antara muka fungsional yang ditakrifkan secara luaran, dilaksanakan melalui kaedah membandingkan (), sesuai untuk situasi di mana kaedah penyortiran berganda diperlukan untuk kelas yang sama, kod sumber kelas tidak dapat diubah suai, atau logik penyortiran sering diubah. Perbezaan antara keduanya adalah setanding yang hanya dapat menentukan logik penyortiran dan perlu mengubah suai kelas itu sendiri, sementara perbandingan

Untuk menangani masalah pengekodan watak di Java, kunci adalah dengan jelas menentukan pengekodan yang digunakan pada setiap langkah. 1. Sentiasa tentukan pengekodan apabila membaca dan menulis teks, gunakan InputStreamReader dan OutputStreamWriter dan lulus dalam set aksara yang jelas untuk mengelakkan bergantung pada pengekodan lalai sistem. 2. Pastikan kedua-dua hujungnya konsisten apabila memproses rentetan pada sempadan rangkaian, tetapkan tajuk jenis kandungan yang betul dan secara jelas menentukan pengekodan dengan perpustakaan. 3. Gunakan string.getBytes () dan newstring (byte []) dengan berhati -hati, dan sentiasa secara manual menentukan standardCharsets.utf_8 untuk mengelakkan rasuah data yang disebabkan oleh perbezaan platform. Pendek kata, oleh

Jenis data JavaScript dibahagikan kepada jenis primitif dan jenis rujukan. Jenis primitif termasuk rentetan, nombor, boolean, null, undefined, dan simbol. Nilai -nilai tidak berubah dan salinan disalin apabila memberikan nilai, jadi mereka tidak mempengaruhi satu sama lain; Jenis rujukan seperti objek, tatasusunan dan fungsi menyimpan alamat memori, dan pembolehubah menunjuk objek yang sama akan mempengaruhi satu sama lain. Typeof dan Instanceof boleh digunakan untuk menentukan jenis, tetapi memberi perhatian kepada isu -isu sejarah TypeOfNull. Memahami kedua -dua jenis perbezaan ini dapat membantu menulis kod yang lebih stabil dan boleh dipercayai.

Injava, thestatickeywordmeansamemberbelongstotheclassitself, nottoinstances.staticvariablesaresharesharedacrossallinstanceAndaccessedWithoutobjectCreation, consuryforglobaltrackingorconstants.staticmethodsoperateoperateTheclasslevel, tidak bolehaccessnonon-staccessnonon-stabil, tidak bolehaccessnonon-staccesslevel, tidak bolehaccessnonon-staccesslevel, tidak bolehaccessnononononononon-staccesslevel, tidak bolehaccessnononononononon-staccesslevel, tidak bolehaccessnononononononononon-staccesslevel, tidak dapat

STD :: Chrono digunakan dalam C untuk memproses masa, termasuk mendapatkan masa semasa, mengukur masa pelaksanaan, titik masa operasi dan tempoh, dan masa analisis pemformatan. 1. Gunakan std :: chrono :: system_clock :: sekarang () untuk mendapatkan masa semasa, yang boleh ditukar menjadi rentetan yang boleh dibaca, tetapi jam sistem mungkin tidak membosankan; 2. Gunakan std :: chrono :: steady_clock untuk mengukur masa pelaksanaan untuk memastikan monoton, dan mengubahnya menjadi milisaat, saat dan unit lain melalui duration_cast; 3. Titik masa (time_point) dan tempoh (tempoh) boleh saling beroperasi, tetapi perhatian harus dibayar kepada keserasian unit dan zaman jam (Epoch)

HashMap melaksanakan penyimpanan pasangan nilai utama melalui jadual hash di Java, dan terasnya terletak di lokasi data yang cepat. 1. Mula -mula gunakan kaedah hashcode () kunci untuk menghasilkan nilai hash dan mengubahnya menjadi indeks array melalui operasi bit; 2 Objek yang berbeza boleh menghasilkan nilai hash yang sama, mengakibatkan konflik. Pada masa ini, nod dipasang dalam bentuk senarai yang dipautkan. Selepas JDK8, senarai yang dipautkan terlalu panjang (panjang lalai 8) dan ia akan ditukar kepada pokok merah dan hitam untuk meningkatkan kecekapan; 3. Apabila menggunakan kelas tersuai sebagai kunci, sama () dan kaedah hashcode () mesti ditulis semula; 4. HashMap secara dinamik mengembangkan kapasiti. Apabila bilangan elemen melebihi kapasiti dan multiplies oleh faktor beban (lalai 0.75), mengembangkan dan mengembalikan; 5. hashmap tidak selamat benang, dan concu harus digunakan dalam multithreaded

ReentrantLock menyediakan kawalan thread yang lebih fleksibel di Java daripada disegerakkan. 1. Ia menyokong kunci pengambilalihan yang tidak menyekat (trylock ()), pengambilalihan kunci dengan masa tamat (trylock (longtimeout, timeunitunit)) dan kunci tunggu yang boleh diganggu; 2. Membolehkan kunci yang adil untuk mengelakkan kelaparan benang; 3. Menyokong pelbagai pemboleh ubah keadaan untuk mencapai mekanisme tunggu/pemberitahuan yang lebih halus; 4. Perlu untuk melepaskan kunci secara manual, buka kunci () mesti dipanggil akhirnya blok untuk mengelakkan kebocoran sumber; 5. Ia sesuai untuk senario yang memerlukan kawalan penyegerakan lanjutan, seperti alat penyegerakan tersuai atau struktur serentak yang kompleks, tetapi synchro masih disyorkan untuk keperluan pengecualian bersama.
