変換ストリームと標準入出力ストリーム
13489 ワード
変換ストリームは、文字ストリームとバイトストリームの間の変換を提供します。
InputStreamReaderとOutputStreamWriter
バイトストリームのデータがすべて文字である場合、文字ストリームに変換する操作がより効率的です.
/*
:inputStreamReader OutputStreamWriter
: --->
--->
*/
@Test
public void test1(){
//
BufferedReader br =null;
BufferedWriter bw = null;
try {
File file = new File("a.txt");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "GBK");
br = new BufferedReader(isr);
//
File file2 = new File("a5.txt");
FileOutputStream fos = new FileOutputStream(file2);
OutputStreamWriter osw = new OutputStreamWriter(fos);
bw = new BufferedWriter(osw);
String str;
while ((str = br.readLine())!=null){
bw.write(str);
bw.newLine();
bw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (bw != null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (br!= null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
ひょうじゅんにゅうしゅつりょくりゅう
/*
: ,
"e" "exit" ,
*/
@Test
public void test2(){
BufferedReader br = null;
try {
InputStream is = System.in;
InputStreamReader isr = new InputStreamReader(is);
br = new BufferedReader(isr);
String str ;
while (true){
System.out.println(" :");
str = br.readLine();
if (str.equalsIgnoreCase("e") || str.equalsIgnoreCase("exit")){
break;
}
String str1 = str.toUpperCase();
System.out.println(str1);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
コードテーブルの由来
コンピュータはバイナリデータしか認識できず、初期の由来は電気信号である.コンピューターの応用を容易にするために、各国の文字を認識することができます.それぞれの国の文字を数字で表し、一つ一つ対応して表を作ります.これがエンコードテーブルです.符号化テーブルの由来コンピュータはバイナリデータしか認識できず,初期の由来は電気信号であった.コンピューターの応用を容易にするために、各国の文字を認識することができます.それぞれの国の文字を数字で表し、一つ一つ対応して表を作ります.これがエンコードテーブルです.
一般的なエンコーディングテーブル
ASCII:アメリカ標準情報交換コード.1バイトの7ビットで表すことができます.ISO 8859-1:ラテンコード表.欧州コードテーブルは1バイトの8ビットで表される.GB 2312:中国の中国語コード表.GBK:中国の中国語コード表がアップグレードされ、より多くの中国語文字記号が融合しました.Unicode:国際標準コードで、多くの文字が融合しています.すべての文字は2バイトで表され、Java言語ではunicode UTF-8が使用されます.最大3バイトで1文字を表します.