二级Java考试辅导教程:4.7字符流的处理[2]
文章作者 100test 发表时间 2007:03:10 18:44:00
来源 100Test.Com百考试题网
获取当前编码方式
public String getEncoding().
关闭流
public void close() throws IOException.
4.7.3 BufferedReader和BufferedWriter
生成流对象
public BufferedReader(Reader in). //使用缺省的缓冲区大小
public BufferedReader(Reader in, int sz). //sz为缓冲区的大小
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).
//从键盘接收了一个字符串的输入,并创建了一个字符输入流的对象
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码的编码方式,可以在不同平台之间正确转换字符。