摘要:文件復制練習一讀一寫明確數據源數據的目的地文件復制的步驟創建字節緩沖輸入流對象構造方法中傳遞字節輸入流創建字節緩沖輸出流對象構造方法中傳遞字節輸出流使用字節緩沖輸入流對象中的方法讀取文件使用字節緩沖輸出流中的方法把讀取的數據寫入到內部緩沖區
package com.itheima.demo02.CopyFile;
import java.io.*;
/*
文件復制練習:一讀一寫 明確: 數據源: c:1.jpg 數據的目的地: d:1.jpg 文件復制的步驟: 1.創建字節緩沖輸入流對象,構造方法中傳遞字節輸入流 2.創建字節緩沖輸出流對象,構造方法中傳遞字節輸出流 3.使用字節緩沖輸入流對象中的方法read,讀取文件 4.使用字節緩沖輸出流中的方法write,把讀取的數據寫入到內部緩沖區中 5.釋放資源(會先把緩沖區中的數據,刷新到文件中) 文件的大小:780,831 字節 一次讀寫一個字節:32毫秒 使用數組緩沖讀取多個字節,寫入多個字節:5毫秒
*/
public class Demo02CopyFile {
public static void main(String[] args) throws IOException { long s = System.currentTimeMillis(); //1.創建字節緩沖輸入流對象,構造方法中傳遞字節輸入流 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("c:1.jpg")); //2.創建字節緩沖輸出流對象,構造方法中傳遞字節輸出流 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:1.jpg")); //3.使用字節緩沖輸入流對象中的方法read,讀取文件 //一次讀取一個字節寫入一個字節的方式 /*int len = 0; while((len = bis.read())!=-1){ bos.write(len); }*/ //使用數組緩沖讀取多個字節,寫入多個字節 byte[] bytes = new byte[1024]; int len = 0; while((len = bis.read(bytes))!=-1){ bos.write(bytes,0,len); } bos.close(); bis.close(); long e = System.currentTimeMillis(); System.out.println("復制文件共耗時:"+(e-s)+"毫秒"); }
}
不實用緩沖流的方式
package com.itheima.demo02.CopyFile;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
文件復制練習:一讀一寫 明確: 數據源: c:1.jpg 數據的目的地: d:1.jpg 文件復制的步驟: 1.創建一個字節輸入流對象,構造方法中綁定要讀取的數據源 2.創建一個字節輸出流對象,構造方法中綁定要寫入的目的地 3.使用字節輸入流對象中的方法read讀取文件 4.使用字節輸出流中的方法write,把讀取到的字節寫入到目的地的文件中 5.釋放資源 文件的大小:780,831 字節 一次讀寫一個字節:6043毫秒 使用數組緩沖讀取多個字節,寫入多個字節:10毫秒
*/
public class Demo01CopyFile {
public static void main(String[] args) throws IOException { long s = System.currentTimeMillis(); //1.創建一個字節輸入流對象,構造方法中綁定要讀取的數據源 FileInputStream fis = new FileInputStream("c:1.jpg"); //2.創建一個字節輸出流對象,構造方法中綁定要寫入的目的地 FileOutputStream fos = new FileOutputStream("d:1.jpg"); //一次讀取一個字節寫入一個字節的方式 //3.使用字節輸入流對象中的方法read讀取文件 /*int len = 0; while((len = fis.read())!=-1){ //4.使用字節輸出流中的方法write,把讀取到的字節寫入到目的地的文件中 fos.write(len); }*/ //使用數組緩沖讀取多個字節,寫入多個字節 byte[] bytes = new byte[1024]; //3.使用字節輸入流對象中的方法read讀取文件 int len = 0;//每次讀取的有效字節個數 while((len = fis.read(bytes))!=-1){ //4.使用字節輸出流中的方法write,把讀取到的字節寫入到目的地的文件中 fos.write(bytes,0,len); } //5.釋放資源(先關寫的,后關閉讀的;如果寫完了,肯定讀取完畢了) fos.close(); fis.close(); long e = System.currentTimeMillis(); System.out.println("復制文件共耗時:"+(e-s)+"毫秒"); }
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/76244.html
摘要:字符轉換流原理字節流編碼表。和作為子類,僅作為操作字符文件的便捷類存在。源目的先根據需求明確要讀,還是要寫。屏幕網絡完全可以明確具體要使用哪個流對象。明確四是否需要額外功能呢額外功能轉換嗎轉換流。高效嗎緩沖區對象。 01轉換流概述 * A: 轉換流概述 * a: 轉換流概述 * OutputStreamWriter 是字符流通向字節流的橋梁:可使用指定的字符編碼...
摘要:用兩個字節表示。兩個字節第一個字節是負數第二個字節可能是正數目前最常用的中文碼表,萬的中文和符號。用兩個字節表示,其中的一部分文字,第一個字節開頭是,第二字節開頭是最新的中文碼表,目前還沒有正式使用。 01輸入和輸出 * A:輸入和輸出 * a: 參照物 * 到底是輸入還是輸出,都是以Java程序為參照 * b: Output * 把內存...
摘要:是字符流通向字節流的橋梁可使用指定的將要寫入流中的字符編碼成字節。編碼把能看懂的變成看不懂繼續自父類的共性成員方法寫入單個字符。刷新該流的緩沖。關閉此流,但要先刷新它。構造方法創建使用默認字符編碼的。 package com.itheima.demo03.ReverseStream; import java.io.FileOutputStream;import java.io.IOEx...
閱讀 2345·2023-04-25 14:29
閱讀 1477·2021-11-22 09:34
閱讀 2715·2021-11-22 09:34
閱讀 3398·2021-11-11 10:59
閱讀 1864·2021-09-26 09:46
閱讀 2238·2021-09-22 16:03
閱讀 1929·2019-08-30 12:56
閱讀 486·2019-08-30 11:12