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