您的位置:首页 > 其它

io 流(2 缓冲流,转换流,数据流)

2016-05-05 17:52 369 查看
一、缓冲流BufferedReader, BufferedWriter,以字符为单位的流

BufferedInputStream ,BufferedOutputStream 以字节为单位

以BufferedReader ;BufferedWriter 为例 代码如下

public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader b=null;
BufferedWriter bw=null;
try {
b=new BufferedReader(new FileReader("C:\\Documents and Settings\\Administrator\\桌面\\个人图片\\io.txt"));
bw=new BufferedWriter(new FileWriter("C:\\Documents and Settings\\Administrator\\桌面\\个人图片\\ios.txt"));
String red=
b.readLine();
while(red!=null){
bw.write(red);
bw.newLine();
}
bw.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(b!=null){
try {
b.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(bw!=null){
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

二,转换流 InputStreamReader 和OutPutStreamWriter(输出为正常字符,文件中为乱码)

转换流是将字节转换成字符的流;

InputStramReader 将输入流读取的字节转换成字符,需要和InputStream 套接;

OutputStreamWriter 将要写入到字节流里的字符按一定编码转换成字节,需要和 OutputStream 套接

例子:

public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader r=new BufferedReader(new InputStreamReader(System.in));
try {
String str=r.readLine();
System.out.println(str);
while(str!=null){
if(str.equalsIgnoreCase("e")){
//System.exit(0);
System.out.println("退出");
break;
}
System.out.println(str);
System.out.println("输入新信息");
str=r.readLine();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

三、数据流

数据流 DataInputStream ,DateOutPutStream 分别用来读取和写入基本数据类型的流;(输出,文件中都为正常字符)

例子:

public static void main(String[] args) {
// TODO Auto-generated method stub
DataInputStream di=null;
DataOutputStream dos=null;
try {
di=new DataInputStream(new FileInputStream("C:\\Documents and Settings\\Administrator\\桌面\\个人图片\\io.txt"));
dos=new DataOutputStream(new FileOutputStream("C:\\Documents and Settings\\Administrator\\桌面\\个人图片\\io.txt"));
// dos.writeInt(12);
// dos.writeChar('q');
dos.writeUTF("中国");
//dos.writeDouble(12.3333);
//System.out.println(di.readChar());
System.out.println(di.readUTF());
//System.out.println(di.readInt());
//System.out.println(di.readDouble());
dos.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(di!=null){
try {
di.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(dos!=null){
try {
di.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  io流