Jadual Kandungan
1 Asal usul aliran aksara
四、字符流写数据的五种方法
五、字符流读数据的两种方法
Rumah Java javaTutorial Analisis contoh aliran aksara Java

Analisis contoh aliran aksara Java

Apr 28, 2023 pm 04:40 PM
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 pengekodan

    Mengapa 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 aksara

    Set 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-8

    UTF-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 platform

    String(bait[]bait,String charsetName): Membina String baharu melalui set aksara yang ditentukan Nyahkod bait yang ditentukan tatasusunan untuk membina String baharu

    Format pengekodan lalai dalam IDEA ialah UTF-8

    4. Isu pengekodan dan penyahkodan strim aksara

    Abstraksi 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。
    OutputStreamWruter: ialah aliran aksara daripada Throttling bridge: Mengekodkan aksara bertulis ke dalam bait menggunakan set aksara tersuai Set aksara yang digunakannya boleh ditentukan mengikut nama, boleh dinyatakan secara eksplisit atau boleh menerima set aksara lalai platform

    Kaedah pembinaan:

    <.>

    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();
    
        }
    }
    Salin selepas log masuk

    四、字符流写数据的五种方法

    方法名说明
    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={&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;二&#39;};
            opsw.write(ch);
            opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法
            //方式三:写入一个字符数组的一部分
            opsw.write(ch,0,2);
            opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法
            //方式四:写入一个字符串
            opsw.write("一二三");
            opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法
            //方式五:写入一个字符串的一部分
            opsw.write("三四五",1,2);
            opsw.flush();//如果需要在文件中立即显示输入的数据,就需要加入刷新方法
        }
    }
    Salin selepas log masuk

    五、字符流读数据的两种方法

    方法名说明
    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();
        }
    }
    Salin selepas log masuk

    小结:如果使用默认编码格式的话,那么字符输入流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!

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

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

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

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

    Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

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

    Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

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

    Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

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

    Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

    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

    TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

    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.

    Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

    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

    Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

    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.

    See all articles