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();
}
}
}
}
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();
}
}
}
}
相关文章推荐
- java IO流文件的读写具体实例
- 装饰类设计模式 【不完善版】 IO流
- IO流操作规律 转码
- 重置标准输入输出流 IO流
- 【Java基础】IO流操作
- 【代码练习】学生成绩排名--涉及IO流和集合
- JAVA基础-IO流
- IO(输入输出流) 4000
- Java培训-IO流补充
- IO流操作规律(一)
- 黑马程序员————————IO流 FileWriter类 和 FileReader类的一些基本用法
- 黑马程序员--Java基础--IO流
- io 学习
- javaIO继承关系
- io流(一)
- 黑马程序员—装箱拆箱与IO流重点
- 黑马程序员——java基础——IO流(2)File类,IO常用流对象及IO包中其他类
- 黑马程序员_java中IO流的操作规律
- java自学中的一些小问题(IO流)
- 黑马程序员-java基础-IO流中的字节流和字符流