java中常用的io流有16種:
FileInputStream
FileOutputStream
FileReader
FileWriter
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
DataInputStream
DataOutputStream
ObjectInputStream
ObjectOutputStream
PrintWriter
PrintStream
用UML簡單分析一下他們之間的繼承關係:
●FileInputStream與FileOutputStream用法:
package io;
import java.io.File;
import java.io.FileInputStream;
public class FileInputStream01 {
/**
* 輸入流FileInputStream
* 將D盤test01.txt,讀到內存
*/
public static void main(String[] args) throws Exception{
File file = new File("D:\\test01.txt");
FileInputStream fis = new FileInputStream(file);
int temp = 0; //讀取的字節數
byte[] bytes = new byte[1024]; //將1024個字節的數據讀入一個 byte 數組中
while((temp=fis.read(bytes))!=-1){
System.out.println(temp);
//將byte數組轉換爲字符串輸出
System.out.print(new String(bytes,0,temp));
}
fis.close();
}
}
package io;
import java.io.FileOutputStream;
public class FileOutputStream01 {
/**
* 輸出流 FileOutputStream
* 將內存中str字符串寫入D盤test02.txt中
*/
public static void main(String[] args) throws Exception{
//設置爲true,不會將原文件內容覆蓋
FileOutputStream fos = new FileOutputStream("D:\\test02.txt",true);
String str = "helloword";
//將String轉換爲byte數組
byte[] bytes = str.getBytes();
fos.write(bytes);
//強制寫入,爲了保證數據的完整性
fos.flush();
fos.close();
}
}
package io;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileCopy {
/**
* 關於文件的複製粘貼
* 將D盤test02.txt,複製粘貼到C盤
*/
public static void main(String[] args) throws Exception{
//創建輸入流
FileInputStream fis = new FileInputStream("D:\\test02.txt");
//創建輸出流
FileOutputStream fos = new FileOutputStream("C:\\test02.txt");
int temp = 0;
byte[] bytes = new byte[1024];
while((temp=fis.read(bytes))!=-1){
fos.write(bytes,0,temp);
}
fos.flush();
fis.close();
fos.close();
}
}