案例:分別用字符流和字節(jié)流進(jìn)行圖片的復(fù)制
類InputStream? 字節(jié)輸入流? java.io包下
InputStream是抽象類带兜,若想實(shí)現(xiàn)谅摄,必須用子類去實(shí)現(xiàn)它
*子類? ? ? ? FileInputStream? 從文件系統(tǒng)中的某個(gè)文件中獲取輸入字節(jié),用于圖像數(shù)據(jù)之類原始字節(jié)流
*BufferedInputStream? ? 字節(jié)高效流
*類OutputStream? 字節(jié)輸出流? java.io包下
*子類? ? ? ? FileOutputStream
分別用字符流和字節(jié)流復(fù)制圖片
(1)使用字符流復(fù)制——————無法打開此文件
(2)使用字節(jié)流
? ? 二進(jìn)制文件只能使用字節(jié)流進(jìn)行復(fù)制(使用Windows自帶的記事本打開)
? ? 二進(jìn)制文件:視頻多律、文件痴突、音頻等
? ? 文本文件的復(fù)制既可以使用字符流也可以使用字節(jié)流
*/
public class InputStreamtest2 {
public static void main(String[] args) throws IOException {
/*//使用字符流復(fù)制——————無法打開此文件
FileReader fr=new FileReader("InputStreamtest.java");
FileWriter fw=new FileWriter("D:\\FileReader");
//一次讀寫一個(gè)字符數(shù)組
char[] s=new char[1024];
? ? ? ? int? len;
? ? ? ? while((len=fr.read(s))!=-1) {
? ? ? ? fw.write(s, 0, len);
? ? ? ? fw.flush();
? ? ? ? //System.out.println(s);
?}
? ? ? ? fr.close();
? ? ? ? fw.close();
}*/
//使用字符流復(fù)制
FileInputStream? fir=new FileInputStream("InputStreamtest.java");
FileOutputStream fow=new FileOutputStream ("E:\\FileReader");
//一次讀寫一個(gè)字節(jié)數(shù)組
byte[] s=new byte[1024];
? ? ? ? int? len;
? ? ? ? while((len=fir.read(s))!=-1) {
? ? fow.write(s, 0, len);? ? ? ??
? ? ? ? //System.out.println(s.toString()); ? ? ? ?
? ? ? ? }
? ? ? ? fir.close();
? ? ? ? fow.close();
}
}