1. 程式人生 > 程式設計 >通過vue方式實現二維碼掃碼功能

通過vue方式實現二維碼掃碼功能

  • 轉換流提供了在位元組流和字元流之間的轉換

  • Java API提供了兩個轉換流:
    InputStreamReader : 將 InputStream 轉換為 Reader
    OutputStreamWriter : 將 Writer 轉換為 OutputStream

  • 位元組流中的資料都是字元時,轉成字元流操作更高效。

  • 很多時候我們使用轉換流來處理檔案亂碼問題。實現編碼和解碼的功能。

1. 轉換流: 屬於字元流
InputStreamReader:將一個位元組的輸入流轉換為字元的輸入流OutputStreamWriter:將一個字元的輸出流轉換為位元組的輸出流

2. 作用: 提供位元組流與字元流之間的轉換

3. 解碼: 位元組、位元組陣列 ---> 字元陣列、字串 編碼: 字元陣列、字串 ---> 位元組、位元組陣列 4. 字符集 1) ASCII: 美國標準資訊交換碼。 用一個位元組的7位可以表示。 2) ISO8859-1: 拉丁碼錶。歐洲碼錶 用一個位元組的8位表示。 3) GB2312: 中國的中文編碼表。最多兩個位元組編碼所有字元 4) GBK: 中國的中文編碼表升級,融合了更多的中文文字元號。最多兩個位元組編碼 5) Unicode: 國際標準碼,融合了目前人類使用的所有字元。為每個字元分配唯一的字元碼。所有的文字都用兩個位元組來表示。 6) UTF-8: 變長的編碼方式,可用1-4個位元組來表示一個字元。 面向傳輸的眾多 UTF (UCS Transfer Format)標準出現了,顧名思義,UTF
-8就是每次8個位傳輸資料,而 UTF-16就是每次16個位。這是為傳輸而設計的編碼,並使編碼無國界,這樣就可以顯示全世界上所有文化的字元了。 Unicode 只是定義了一個龐大的、全球通用的字符集,併為每個字元規定了唯一確定的編號,具體儲存成什麼樣的位元組流,取決於字元編碼方案。推薦的 Unicode 編碼是 UTF-8 和 UTF-16。

InputStreamReaderTest.java

package com.klvchen.java;

import org.junit.Test;

import java.io.*;

public class InputStreamReaderTest {

    @Test
    
public void test1() throws IOException { FileInputStream fis = new FileInputStream("dbcp.txt"); //InputStreamReader isr = new InputStreamReader(fis); //使用系統預設的字符集 //引數2指明瞭字符集,具體使用哪個字符集,取決於檔案dbcp.txt儲存時使用的字符集 InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); char[] cbuf = new char[20]; int len; while ((len = isr.read(cbuf)) != -1) { String str = new String(cbuf, 0, len); System.out.print(str); } isr.close(); } @Test public void test2() throws IOException { //1.造檔案,造流 File file1 = new File("dbcp.txt"); File file2 = new File("dbcp_gbk.txt"); FileInputStream fis = new FileInputStream(file1); FileOutputStream fos = new FileOutputStream(file2); InputStreamReader isr = new InputStreamReader(fis, "utf-8"); OutputStreamWriter osw = new OutputStreamWriter(fos,"gbk"); //2.讀寫過程 char[] cbuf = new char[20]; int len; while ((len = isr.read(cbuf)) != -1) { osw.write(cbuf, 0 ,len); } //3.關閉資源 isr.close(); osw.close(); } }