欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中的FileInputStream三種read()函數(shù)用法

 更新時(shí)間:2022年12月26日 09:38:42   作者:惟念依  
這篇文章主要介紹了java中的FileInputStream三種read()函數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

FileInputStream流的三種read()函數(shù)對(duì)比

首先我們先創(chuàng)建FileIputStream流對(duì)文件進(jìn)行讀取

	public static void main(String[] args) throws IOException {
		//創(chuàng)建File對(duì)象,保存文件夾路徑iu
		File fin_floder = new File("C:\\test.txt");	
	
		//創(chuàng)建從文件讀取數(shù)據(jù)的FileInputStream流
		FileInputStream fin = new FileInputStream(fin_floder);
		

1. int read( )函數(shù) 

該函數(shù)的返回值為int數(shù)值,表示讀取的字符對(duì)應(yīng)的ascii碼,當(dāng)返回為-1表示讀取到文件末尾;

            //順序讀取到文件末尾
			int temp = 0;
			while( (temp = fin.read()) != -1) {
			 	System.out.print(temp+"   ");  //打印read()返回值
		 		System.out.printf("%c",temp);  //打印ascii碼對(duì)應(yīng)的字符
		 		System.out.println();			//換行
			}

讀取 hello,world 文本文檔的結(jié)果:

2. read( byte [ ] ) 

返回讀入緩沖區(qū)的字節(jié)總數(shù),到末尾返回-1

	int size = fin.available();  //返回文件的總字節(jié)數(shù)
	byte[] b = new byte[size];   //生成緩存用于存放讀入的字節(jié)
	System.out.println(fin.read(b));
	String str = new String(b);  //將字節(jié)數(shù)組轉(zhuǎn)化為字符串
	System.out.println(str);

讀取 hello,world 文本文檔的結(jié)果:數(shù)值 11

3. read(byte[ ] ,int off ,int len)

off表示目標(biāo)數(shù)組b中的起始偏移量,也就是從第幾個(gè)下標(biāo)開始寫入數(shù)組,len表示寫入數(shù)組的長(zhǎng)度;

	int size = fin.available();
	byte[] b = new byte[size];
	fin.read(b,2,5); //從數(shù)組的的第三個(gè)元素開始寫入,寫五個(gè)字節(jié)長(zhǎng)度
	String str = new String(b); //字節(jié)數(shù)組轉(zhuǎn)化為字符串
	System.out.println(str);

輸出結(jié)果為:

FileInputStream中的read()方法

首先這是我自己寫代碼的時(shí)候遇到的一個(gè)問(wèn)題,我思來(lái)想去,終于想通透了,所以想分享給大家,當(dāng)然這也是一個(gè)非常簡(jiǎn)單的問(wèn)題。

public class IO_InputStream
  public static void main(String[] args){//需要導(dǎo)包的,圖方便我就不寫了
//1.new一個(gè)FileInputStream對(duì)象
   FileInputStream fis = new FileInputStream("chifan.next)) ;
   //例如這個(gè)文本里面我放了1234567共7個(gè)字符,下面開始讀取文件
   while(fis.read() != -1){
     System.out.print( char)fis.read() );  //將read()方法調(diào)用后返回值為int類型強(qiáng)制轉(zhuǎn)換為字符,以便打印
   }
   //但是打印結(jié)果就是:246,隔一個(gè)打印一個(gè),我感到疑惑
   //后來(lái)我左思右想發(fā)現(xiàn)我在while的執(zhí)行語(yǔ)句塊里面的打印方法又調(diào)用了一次read()方法,導(dǎo)致打印的其實(shí)是每次讀取兩個(gè)字符后,只會(huì)打印每?jī)蓚€(gè)的最后一個(gè)字符,如果我們?cè)?23456后面再一個(gè)7,那么最后打印的就是一個(gè)?如何解決呢?就是我們不要在執(zhí)行語(yǔ)句塊里面出現(xiàn)read()方法
   int len;
   while(len=fis.read() != -1){
     System.out.print( char)len);
}
//這樣結(jié)果就一致了

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot實(shí)現(xiàn)文件上傳示例代碼

    Spring Boot實(shí)現(xiàn)文件上傳示例代碼

    本篇文章主要介紹了Spring Boot實(shí)現(xiàn)文件上傳示例代碼,可以實(shí)現(xiàn)單文件和多文件的上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Java中的常量避免反模式的方法

    Java中的常量避免反模式的方法

    這篇文章主要介紹了Java中的常量避免反模式的方法,需要的朋友可以參考下
    2015-12-12
  • java通過(guò)cglib動(dòng)態(tài)生成實(shí)體bean的操作

    java通過(guò)cglib動(dòng)態(tài)生成實(shí)體bean的操作

    這篇文章主要介紹了java通過(guò)cglib動(dòng)態(tài)生成實(shí)體bean的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Jmeter如何基于命令行運(yùn)行jmx腳本

    Jmeter如何基于命令行運(yùn)行jmx腳本

    這篇文章主要介紹了Jmeter如何基于命令行運(yùn)行jmx腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • MyBatis 引入映射器的方法

    MyBatis 引入映射器的方法

    本文通過(guò)實(shí)例代碼給大家分享mybatis 引入映射器的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-09-09
  • Java創(chuàng)建對(duì)象的四種方式詳解

    Java創(chuàng)建對(duì)象的四種方式詳解

    這篇文章主要介紹了Java創(chuàng)建對(duì)象的四種方式詳解,如果我們不想利用默認(rèn)構(gòu)造器來(lái)創(chuàng)建java對(duì)象,而想利用指定的構(gòu)造器來(lái)創(chuàng)建java對(duì)象,則需要利用Construtor對(duì)象,每個(gè)Construtor對(duì)應(yīng)一個(gè)構(gòu)造器,需要的朋友可以參考下
    2023-11-11
  • 淺談Spring AOP中args()和argNames的含義

    淺談Spring AOP中args()和argNames的含義

    這篇文章主要介紹了Spring AOP中args()和argNames的含義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接

    Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接

    這篇文章主要為大家詳細(xì)介紹了Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • maven profile動(dòng)態(tài)選擇配置文件詳解

    maven profile動(dòng)態(tài)選擇配置文件詳解

    這篇文章主要介紹了maven profile動(dòng)態(tài)選擇配置文件詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 基于springboot+jwt實(shí)現(xiàn)刷新token過(guò)程解析

    基于springboot+jwt實(shí)現(xiàn)刷新token過(guò)程解析

    這篇文章主要介紹了基于springboot+jwt實(shí)現(xiàn)刷新token過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論