<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
①、是一個抽象類,不能夠建立物件,需要被繼承才能夠使用
②、在java.io包下,使用時需要匯入
③、公共的方法:
方法一: int read()
方法二: int read(byte[] b)
方法三: void close()
更多方法請檢視官方API
①、該類繼承了InputStream,可以使用InputStream中的方法
②、能夠把硬碟檔案中的資料讀取到記憶體中使用
③、構造方法
FileInputStream (String name) FileInputStream (File file)
引數的含義:
name 是檔案的路徑
file 是檔案
作用:
建立物件
把物件指定到構造方法中藥讀取的檔案
④、使用步驟
1、建立FileInputStream物件,構造方法中繫結要讀取的資料來源
2、使用物件中的read方法,讀取資料
3、釋放資源
⑤、read()方法
讀取到檔案末尾會返回-1(不管讀多少次)
⑥、補充:String的建構函式
1、String (byte[] bytes) 把位元組陣列轉換為字串
2、String (byte[] bytes,int offset,int length) 把位元組陣列的一部分轉換為字串,從offset位置開始,取length長
⑦、一次性讀取多個檔案
// todo 一次性讀取多個位元組 // 1、定義一個位元組陣列 byte[] bytes = new byte[3]; // 2、建立檔案輸入物件 FileInputStream fis = new FileInputStream("E:\JavaCode\JavaSE\Day8-23\src\a.txt"); // 3、讀取檔案 int read = fis.read(bytes); // 4、輸出 System.out.println(new String(bytes));
⑧、使用迴圈一次性讀取多個位元組
// 一次性讀取多個位元組 byte[] bytes1 = new byte[1024]; FileInputStream fis = new FileInputStream("E:\JavaCode\JavaSE\Day8-23\src\a.txt"); int len = 0; while ((len=fis.read(bytes1))!=-1){ System.out.println(new String(bytes1,0,len)); }
原理:一讀一寫
目的:將A地址裡面的a檔案複製到B地址裡面去
步驟:
1、建立一個位元組輸入流物件,構造方法中繫結要讀取的資料來源
2、建立一個位元組輸出流物件,構造方法中繫結要寫入的目的地
3、使用位元組輸入流物件中的方法read讀取檔案
4、使用位元組輸出流物件中的方法write吧讀取到的位元組寫入到目的地檔案中
5、釋放資源(先釋放寫的資源再釋放讀的資源,因為寫完就代表已經讀完了)
方式一:
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileCopy { public static void main(String[] args) { try { long s = System.currentTimeMillis(); // 1、建立位元組輸入流 起始地 FileInputStream fis = new FileInputStream("E:\JavaCode\JavaSE\Day8-23\src\a.txt"); // 2、建立位元組輸出流 目的地 FileOutputStream fos = new FileOutputStream("E:\JavaCode\JavaSE\Day8-23\src\copy\a.txt"); // 3、讀取資料並寫入目的地 int len = 0; while ((len = fis.read())!=-1){ fos.write(len); } long e = System.currentTimeMillis(); System.out.println("傳輸檔案總共用時:"+(e-s)+"毫秒"); // 4、釋放資源 fos.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
耗時:2毫秒
方式二:
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileCopy { public static void main(String[] args) { try { long s = System.currentTimeMillis(); // 1、建立位元組輸入流 起始地 FileInputStream fis = new FileInputStream("E:\JavaCode\JavaSE\Day8-23\src\a.txt"); // 2、建立位元組輸出流 目的地 FileOutputStream fos = new FileOutputStream("E:\JavaCode\JavaSE\Day8-23\src\copy\a.txt"); // 3、讀取資料並寫入目的地 byte[] b = new byte[1024]; int len = 0; while ((len = fis.read(b))!=-1){ fos.write(b,0,len); } long e = System.currentTimeMillis(); System.out.println("傳輸檔案總共用時:"+(e-s)+"毫秒"); // 4、釋放資源 fos.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
兩者的區別:可以很明顯的看出來方式一和方式二的區別在於:在迴圈的時候判斷條件那裡出現的不一樣,使用方式二的方式可以是檔案複製更加的快捷,在初期推薦使用第二種方式進行檔案的複製
到此這篇關於Java IO流之位元組輸入流的使用詳解的文章就介紹到這了,更多相關Java 位元組輸入流內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45