Analisis contoh aliran aksara Java
1 Asal usul aliran aksara
Memandangkan ia tidak begitu mudah untuk menggunakan aliran bait untuk mengawal bahasa Cina, Java menyediakan aliran aksara untuk mengawal bahasa Cina<.>
Prinsip pelaksanaan: strim bait + jadual pengekodanMengapa tiada masalah apabila menggunakan strim bait untuk menyalin fail teks dengan aksara Cina? Oleh kerana operasi asas akan menyambung bait secara automatik ke dalam bahasa Cina Bagaimana untuk mengenal pasti bahawa bait itu adalah bahasa Cina? Apabila aksara Cina disimpan, sama ada UTF-8 atau GBK, bait pertama ialah nombor negatif untuk digesa 2. Jadual pengekodan Set aksara: ialah set semua aksara yang disokong oleh sistem, termasuk aksara kebangsaan, tanda baca, simbol grafik, nombor, dll. Untuk menyimpan dan mengenali pelbagai simbol set aksara dengan tepat, komputer perlu melakukan pemprosesan aksara Pengekodan, set aksara mesti mempunyai sekurang-kurangnya satu set pengekodan aksaraSet aksara biasa termasuk set aksara ASCII, set aksara GBXXX, set aksara Unikod, dsb.GBK: jadual kod Cina yang paling biasa digunakan, Ia adalah spesifikasi lanjutan berdasarkan standard GB2312 Ia menggunakan skema pengekodan dua bait dan mengandungi sejumlah 21,003 aksara Cina Ia serasi sepenuhnya dengan standard GB2312 dan menyokong aksara Cina tradisional, Jepun dan aksara Cina Korea, dsb. GB18030: Bahasa Cina terkini Jadual kod mengandungi 70244 aksara Cina, menggunakan pengekodan berbilang bait Setiap aksara boleh terdiri daripada 1, 2 atau 4 bait. Menyokong watak etnik minoriti Cina, serta aksara tradisional Cina, aksara Jepun dan Korea Cina, dll. Set aksara Unikod: Direka untuk menyatakan sebarang aksara dalam mana-mana bahasa, ia adalah standard dalam industri, juga dikenali sebagai Ia adalah Unicode dan Standard Universal Code; ia menggunakan sehingga 4 bait nombor untuk menyatakan setiap huruf, simbol atau teks. Terdapat tiga skim pengekodan: UTF-8, UTF-16 dan UTF32 Yang paling biasa digunakan ialah UTF-8UTF-8: Ia boleh digunakan untuk mewakili mana-mana aksara dalam standard Unicode digunakan untuk e-mel, halaman web dan Pengekodan pilihan yang digunakan dalam aplikasi lain yang menyimpan atau memindahkan fail. Kumpulan Kerja Internet memerlukan semua protokol Internet mesti menyokong format pengekodan UTF-8. Ia menggunakan satu hingga empat bait untuk mengekod setiap aksara Peraturan pengekodan UTF-8: 128 aksara AS-ASCII, hanya satu pengekodan bait diperlukan Cina Latin dan lain-lain aksara memerlukan dua bait untuk mengekod Kebanyakan aksara biasa (termasuk bahasa Cina) menggunakan tiga bait untuk mengekod Aksara tambahan UniCode lain yang jarang digunakan menggunakan empat aksara Pengekodan bahagian Ringkasan: Mana jenis peraturan digunakan semasa pengekodan, dan peraturan yang sepadan perlu digunakan untuk penyahkodan, jika tidak, kod akan bercelaru 3. Isu pengekodan dan penyahkodan dalam rentetan Kaedah Pengekodan (IDEA) : bait[] getBytes(): Gunakan set aksara lalai platform untuk mengekod String ke dalam satu siri bait dan simpan hasilnya dalam tatasusunan bait baharu bait[] getBytes( String charsetName): Gunakan set aksara yang ditentukan untuk mengekod String ke dalam satu siri bait dan simpan hasilnya dalam tatasusunan bait baharu Kaedah penyahkodan (IDEA): String(bait[ ]bait): Membina String baharu dengan menyahkod tatasusunan bait yang ditentukan menggunakan set aksara lalai platformString(bait[]bait,String charsetName): Membina String baharu melalui set aksara yang ditentukan Nyahkod bait yang ditentukan tatasusunan untuk membina String baharuFormat pengekodan lalai dalam IDEA ialah UTF-8 4. Isu pengekodan dan penyahkodan strim aksaraAbstraksi aliran aksara Kelas asas: Pembaca: kelas abstrak strim input aksara Penulis: kelas abstrak strim output aksara Dua kelas yang berkaitan dengan isu pengekodan dan penyahkodan dalam strim aksara: InputStreamReader: ialah jambatan daripada aliran bait ke aliran aksara: ia membaca bait dan menyahkodnya kepada aksara menggunakan set aksara yang ditentukan. Set aksara yang digunakannya boleh ditentukan mengikut nama, boleh dinyatakan secara eksplisit atau boleh menerima set aksara lalai platform Kaedah pembinaan:InputStreamReader(InputStream in) | 创建一个使用默认字符集的InputStreamReader。 |
InputStreamReader(InputStream in, String charsetName) | 创建一个使用命名字符集的InputStreamReader。 |
<.>
public class ConversionStreamDemo { public static void main(String[] args) throws IOException { //创建一个默认编码格式的InputStreamReader\OutputStreamWriter InputStreamReader ipsr = new InputStreamReader(new FileInputStream("E:\\abc.txt")); OutputStreamWriter opsw = new OutputStreamWriter(new FileOutputStream("E:\\abc.txt")); //写入数据 opsw.write("你好啊"); opsw.close(); //读数据,方式一:一次读取一个字节数据 int ch; while ((ch = ipsr.read()) != -1) { System.out.print((char) ch); } ipsr.close(); } }
四、字符流写数据的五种方法
方法名 | 说明 |
void write(int c) | 写一个字符 |
void write(char[] cbuf) | 写入一个字符数组 |
void write(char[] cbuf,int off,int len) | 写入字符数组的一部分 |
void write(String str) | 写入一个字符串 |
void write(String str,int off,int len) | 写入一个字符串的一部分 |
字符流写数据需要注意缓冲区的问题,如果想要将缓冲区的数据加载出来需要在写入方法后加上刷新方法flush();
前三个方法与字节流写入方法使用相同,这里重点介绍下面两种方式
public class OutputStreamWriterDemo { public static void main(String[] args) throws IOException { //创建一个默认编码格式的OutputStreamWriter对象 OutputStreamWriter opsw=new OutputStreamWriter(new FileOutputStream("E:\\abc.txt")); //方式一:写入一个字节 opsw.write(97); opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法 //方式二:写入一个字符数组 char[]ch={'a','b','c','二'}; opsw.write(ch); opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法 //方式三:写入一个字符数组的一部分 opsw.write(ch,0,2); opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法 //方式四:写入一个字符串 opsw.write("一二三"); opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法 //方式五:写入一个字符串的一部分 opsw.write("三四五",1,2); opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法 } }
五、字符流读数据的两种方法
方法名 | 说明 |
int read() | 一次读取一个字符数据 |
int read(char[] cbuf) | 一次读取一个字符数组数据 |
public class InputStreamReadDemo { public static void main(String[] args) throws IOException { //创建一个默认编码格式的InputStreamReader InputStreamReader ipsr=new InputStreamReader(new FileInputStream("E:\\abc.txt")); //读取数据,方式一一次读取一个字符数据 int ch; while ((ch=ipsr.read())!=-1){ System.out.print((char) ch); } ipsr.close(); //方式二:一次读取一个字符数组数据 char []ch=new char[1024]; int len; while ((len=ipsr.read(ch))!=-1){ System.out.print(new String(ch,0,len)); } ipsr.close(); } }
小结:如果使用默认编码格式的话,那么字符输入流InputStreamReader可以使用子类FileReader来替代,字符输出流OutputStreamWriter可以使用其子类FileWriter来替代,两者在使用默认编码格式的情况下作用一致。
Atas ialah kandungan terperinci Analisis contoh aliran aksara Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

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





Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.
