io 流(2 緩衝流,轉換流,數據流)

一、緩衝流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();
}
}

}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章