日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

《Java技术》第九次作业计科1501赵健宇-IO

發布時間:2023/12/18 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java技术》第九次作业计科1501赵健宇-IO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(一)學習總結

1.用思維導圖對javaIO操作的學習內容進行總結。

2.下面的程序實現了文件的拷貝,但采用的是一個字節一個字節的讀寫方式,效率很低。使用緩沖區可以減少對文件的操作次數,從而提高讀寫數據的效率。IO包中提供了兩個帶緩沖的字節流BufferedInputStream和BufferedOutputStream,查閱JDK幫助文檔,修改程序,利用這兩個類完成文件拷貝,對比執行效率。

import java.io.*; public class Test{public static void main(String args[]) {FileInputStream in=null;FileOutputStream out=null;File fSource=new File("d:"+File.separator+"my.jpg");File fDest=new File("d:"+File.separator+"java"+File.separator+"my.jpg");if(!fSource.exists()){ System.out.println("源文件不存在"); System.exit(1); }if(!fDest.getParentFile().exists()){ fDest.getParentFile().mkdirs(); }try { in=new FileInputStream(fSource);out=new FileOutputStream(fDest);int len=0;long begintime = System.currentTimeMillis();while((len=in.read())!=-1){out.write(len); } long endtime = System.currentTimeMillis();System.out.println("文件拷貝完成,耗時"+(endtime-begintime)+"毫秒");}catch(Exception e){System.out.println("文件操作失敗"); }finally{ try { in.close(); out.close();} catch (IOException e) {e.printStackTrace();} } } }

運行結果:文件拷貝完成,耗時2657毫秒

修改后的代碼:
public class BufferedInputStream
extends FilterInputStreamBufferedInputStream
為另一個輸入流添加一些功能,即緩沖輸入以及支持 mark 和reset方法的能力。在創建BufferedInputStream 時,會創建一個內部緩沖區數組。在讀取或跳過流中的字節時,可根據需要從包含的輸入流再次填充該內部緩沖區,一次填充多個字節。mark 操作記錄輸入流中的某個點,reset操作使得在從包含的輸入流中獲取新字節之前,再次讀取自最后一次 mark 操作后讀取的所有字節。
int read(byte[] b, int off, int len)
從此字節輸入流中給定偏移量處開始將各字節讀取到指定的 byte 數組中。

import java.io.*;public class Test {public static void main(String args[]) {FileInputStream in = null;FileOutputStream out = null;File fSource = new File("d:" + File.separator + "my.jpg");File fDest = new File("d:" + File.separator + "java" + File.separator+ "my.jpg");if (!fSource.exists()) {System.out.println("源文件不存在");System.exit(1);}if (!fDest.getParentFile().exists()) {fDest.getParentFile().mkdirs();}try {in = new FileInputStream(fSource);out = new FileOutputStream(fDest);byte[] b = new byte[1024];int len = 0;long begintime = System.currentTimeMillis();while ((len = in.read(b)) != -1) {out.write(b,0,len);}long endtime = System.currentTimeMillis();System.out.println("文件拷貝完成,耗時" + (endtime - begintime) + "毫秒");} catch (Exception e) {System.out.println("文件操作失敗");} finally {try {in.close();out.close();} catch (IOException e) {e.printStackTrace();}}} }

運行結果:文件拷貝完成,耗時16毫秒

3.其他需要總結的內容。

  • System.currentTimeMillis()產生一個當前的毫秒,這個毫秒其實就是自1970年1月1日0時起的毫秒數,Date()其實就是相當于Date(System.currentTimeMillis());因為Date類還有構造Date(long date),用來計算long秒與1970年1月1日之間的毫秒差。

(二)實驗總結

實驗內容:
1.寵物商店:在實驗八的基礎上,增加一個功能,用文件保存每日的交易信息記錄。
程序設計思路:在上一次實驗基礎上新建工具類FileTools

  • Date date = new Date();
    SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    format.format(date);//獲取并使用當前時間

  • 使用StringBuffer及apend()方法,動態寫入文件內容,\r\n為行分割。

2.完成文件復制操作,在程序運行后,提示輸入源文件路徑和目標文件路徑。
《使用netbeans完成GUI復制程序》

開始界面

操作完成界面

出錯界面

(三)代碼托管

點擊此處進入碼云

轉載于:https://www.cnblogs.com/ai1045152332/p/6893621.html

總結

以上是生活随笔為你收集整理的《Java技术》第九次作业计科1501赵健宇-IO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。