獲取當前編碼方式
public String getEncoding();
關閉流
public void close() throws IOException;
4.7.3 BufferedReader和BufferedWriter
生成流對象
public BufferedReader(Reader in); //使用缺省的緩沖區(qū)大小
public BufferedReader(Reader in, int sz); //sz為緩沖區(qū)的大小
public BufferedWriter(Writer out);
public BufferedWriter(Writer out, int sz);
讀入/寫出字符
除了Reader和Writer中提供的基本的讀寫方法外,增加對整行字符的處理。
public String readLine() throws IOException; //讀一行字符
public void newLine() throws IOException; //寫一行字符來源:www.examda.com
【例4-4】
import java.io.*;
public class NumberInput{
public static void main(String args[]){
try{
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
//從鍵盤接收了一個字符串的輸入,并創(chuàng)建了一個字符輸入流的對象
in=new BufferedReader(ir);
String s=in.readLine();
//從輸入流in中讀入一行,并將讀取的值賦值給字符串變量s
System.out.println("Input value is: "+s);
int i = Integer.parseInt(s);//轉換成int型
i*=2;
System.out.println("Input value changed after doubled: "+i);
}catch(IOException e)
{System.out.println(e);}
}
}
運行結果
D:\>java NumberInput
123
Input value is 123
Input value changed after doubled: 246
注意:在讀取字符流時,如果不是來自于本地的,比如說來自于網絡上某處的與本地編碼方式不同的機器,那么我們在構造輸入流時就不能簡單地使用本地缺省的編碼方式,否則讀出的字符就不正確;為了正確地讀出異種機上的字符,我們應該使用下述方式構造輸入流對象:
ir = new InputStreamReader(is, "8859_1");
采用ISO 8859_1編碼方式,這是一種映射到ASCII碼的編碼方式,可以在不同平臺之間正確轉換字符。
public String getEncoding();
關閉流
public void close() throws IOException;
4.7.3 BufferedReader和BufferedWriter
生成流對象
public BufferedReader(Reader in); //使用缺省的緩沖區(qū)大小
public BufferedReader(Reader in, int sz); //sz為緩沖區(qū)的大小
public BufferedWriter(Writer out);
public BufferedWriter(Writer out, int sz);
讀入/寫出字符
除了Reader和Writer中提供的基本的讀寫方法外,增加對整行字符的處理。
public String readLine() throws IOException; //讀一行字符
public void newLine() throws IOException; //寫一行字符來源:www.examda.com
【例4-4】
import java.io.*;
public class NumberInput{
public static void main(String args[]){
try{
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
//從鍵盤接收了一個字符串的輸入,并創(chuàng)建了一個字符輸入流的對象
in=new BufferedReader(ir);
String s=in.readLine();
//從輸入流in中讀入一行,并將讀取的值賦值給字符串變量s
System.out.println("Input value is: "+s);
int i = Integer.parseInt(s);//轉換成int型
i*=2;
System.out.println("Input value changed after doubled: "+i);
}catch(IOException e)
{System.out.println(e);}
}
}
運行結果
D:\>java NumberInput
123
Input value is 123
Input value changed after doubled: 246
注意:在讀取字符流時,如果不是來自于本地的,比如說來自于網絡上某處的與本地編碼方式不同的機器,那么我們在構造輸入流時就不能簡單地使用本地缺省的編碼方式,否則讀出的字符就不正確;為了正確地讀出異種機上的字符,我們應該使用下述方式構造輸入流對象:
ir = new InputStreamReader(is, "8859_1");
采用ISO 8859_1編碼方式,這是一種映射到ASCII碼的編碼方式,可以在不同平臺之間正確轉換字符。