java 读取1m文件_java的FileInputStream类读取文件
package net.csdn.InputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/**
* Created by rabbit先生 on 2017/3/11 0011.
*/
public class FileInputStreamDemo {
/**
* 前面已經說過了File類,其主要作用就是對文件進行操作,
* 例如讀取文件,確定文件的名字,修改時間等問題,但都是基于文件級別的操作
*
* 今天,我們來將對文件內容的讀取操作,在java中對文件進行操作使用的是IO流
* IO流:就是指InputStream(輸入流)和OutputStream(輸出流)
* 特別說明:
* 輸入流就是把文件中的東西進行輸入到內存中,
* 輸出流就是把內存中的東西輸出到文件中,
* 我們可以使用內存來做分別,輸入到內存就是輸入流,從內存中輸出就是輸出流
*
* 我們使用最基礎的類:FileInputStream
* 使用文件路徑:F:\fileInputStream\a.txt
* a.txt文件中的內容是:abcdefghijklmn
* 最后:流就像是水龍頭一樣,有開有關,所以使用交流之后記得對流進行關閉操作,
* 不然會浪費內存,導致你的電腦開發的時候越來越卡
*/
//創建FileInputStream對象,使用FileInputStream(File file)
//創建這個對象的時候需要傳遞一個File類,所以我們先創建File類,使用File(String pathname)
//我們傳遞一個本地文件的絕對路徑就可以了
public static void main(String[] args) throws Exception {
//創建File類對象
File file = new File("F:\\fileInputStream\\a.txt");
//創建FileInputStream對象,并關聯對應的文件,創建對象的時候會出現異常
FileInputStream fis = new FileInputStream(file);
//我們現在可以通過FileInputStream對象對文件的內容進行讀取了
/*************第一種方式開始代碼{一次讀取一個}****************/
//使用的時候請關閉方式二的代碼
//int len;
//循環一個一個讀取{當讀取不到的時候會返回-1所以可以使用這個做循環的條件}
//可能有人覺得奇怪,我文件里面的內容是字母,為什么可以使用int類型接收呢?
//答案:讀取的時候獲取到的是ASCII碼{可以System.out.println(len);不轉換輸出試一下},
// 所以我們需要轉換
//while ((len = fis.read()) != -1) {
//System.out.println((char)len);
//}
//fis.close();//關閉流
/*************第一種方式結束代碼****************/
/*************第二種方式開始代碼{一次讀取多個放到字節數組中}****************/
//這種方式效率更加高,因為不用頻繁的操作硬盤,一次就讀了1M
//byte[] bytes = new byte[1024];//為了讀取方便,一次讀取1M,
//將讀取到的數據保存到bytes這個字節數組中
int length;
byte[] bytes = new byte[1024];
while ((length = fis.read(bytes)) != -1) {
System.out.print(new String(bytes, 0, length));//將數據變為字符串輸出
}
fis.close();//關閉流
//int read = fis.read(bytes);//返回讀取到的長度{也是字節數組中的長度}
/*************第二種方式結束代碼****************/
}
}
總結
以上是生活随笔為你收集整理的java 读取1m文件_java的FileInputStream类读取文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络课程设计之Tracert与Pi
- 下一篇: python中sort和sorted区别