自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

文件字節(jié)流FileInputStrea和FileOutputStream

開發(fā) 后端
本文主要介紹了文件字節(jié)流FileInputStrea和FileOutputStream、如何把數(shù)據(jù)追加到文件末尾實(shí)現(xiàn)的例子、通過接收用戶從鍵盤輸入的數(shù)據(jù),按回車后保存到text目錄下的文件test03.txt中。

[[440744]]

大家好,我是Java進(jìn)階者。

前言

我們知道計(jì)算機(jī)的數(shù)據(jù)基本是存儲在硬盤文件當(dāng)中,操作文件的數(shù)據(jù)是常用的操作例如讀取數(shù)據(jù)和寫入數(shù)據(jù)。接下來小編帶大家一起來學(xué)習(xí)!

一、文件字節(jié)流FileInputStream

1.FileInputStream是InputStream的子類,F(xiàn)ileInputStram是操作文件的字節(jié)輸入流。文件字節(jié)輸入流是以字節(jié)讀取文件中的數(shù)據(jù)。

2.FileInputStream類的構(gòu)造方法有:

(1)public FileInputStream(String name)方法:使用指定的文件名name創(chuàng)建一個(gè)FileInputStream對象。

(2)public FileInputStream(File file)方法:使用File對象創(chuàng)建FileInputStream對象。

3.在工程里面新建一個(gè)目錄text,然后再建test01.txt文本文件,在并在文本文件寫入"helloworld",實(shí)現(xiàn)字節(jié)流對文件數(shù)據(jù)的讀取。

例子的實(shí)現(xiàn):

  1. package cc; 
  2. import java.io.FileInputStream; 
  3. public class P01 { 
  4. public static void main(String[] args) throws Exception { 
  5.         //創(chuàng)建一個(gè)文件字節(jié)輸入流 
  6.         FileInputStream f=new FileInputStream("text/test01"); 
  7.         //定義int類型的變量a保存每次讀取的一個(gè)字節(jié) 
  8.         int a=0; 
  9.         while(true){ 
  10.             //變量a保存讀取的一個(gè)字節(jié) 
  11.             a=f.read(); 
  12.             //當(dāng)讀取的字節(jié)為-1,跳出循環(huán) 
  13.             if(a==-1){ 
  14.                 break; 
  15.             } 
  16.             System.out.println(a); 
  17.         } 
  18.         //關(guān)閉流 
  19.         f.close(); 
  20.   } 

運(yùn)行的結(jié)果如下所示:

上面的運(yùn)行的結(jié)果是數(shù)字是因?yàn)橛脖P上的文件是以字節(jié)的形式存在,在test01.txt文件中,字符'h','e','l','l','o','w','o','r','l','d'各占一個(gè)字節(jié),所以這10個(gè)字節(jié)對應(yīng)十進(jìn)制數(shù)。

二、文件字節(jié)流FileOutputStream

1.FileOutputStream是OutputStream的子類,它具有文件的寫入功能。文件字節(jié)輸出流按字節(jié)把數(shù)據(jù)寫到文件中。

2.FileOutputStream類的構(gòu)造方法有:

(1)public FileOutputStream(String name)方法:使用指定的文件名name創(chuàng)建一個(gè)FileOutputStream對象。

(2)public FileOutputStream(File file)方法:使用File對象創(chuàng)建FileOutputStream對象。

(3)public FileOutputStream(String name,boolean append)方法:指定的文件已經(jīng)存在,在文件尾追加還是覆蓋這個(gè)文件。

3.如何將數(shù)據(jù)寫入文件?

例子的實(shí)現(xiàn):

  1. package cc; 
  2.  
  3. import java.io.FileOutputStream; 
  4.  
  5. public class P02 { 
  6.  
  7. public static void main(String[] args) throws Exception { 
  8.         // TODO Auto-generated method stub 
  9.         //創(chuàng)建一個(gè)文件字節(jié)輸出流 
  10.         FileOutputStream fo=new FileOutputStream("text/test02"); 
  11.         String str="Java進(jìn)階交流"
  12.         byte b[]=str.getBytes(); 
  13.         for(int i=0;i<b.length;i++){ 
  14.             fo.write(b[i]); 
  15.         } 
  16.         fo.close(); 
  17.   } 

運(yùn)行的結(jié)果如下圖所示:

在程序text目錄下自動生成一個(gè)新的test02.txt文件。

三、如何把數(shù)據(jù)追加到文件末尾?

1.使用public FileOutputStream(String name,boolean append)方法把a(bǔ)ppend參數(shù)設(shè)置為true。

2.例子的實(shí)現(xiàn)

  1. package cc; 
  2.  
  3. import java.io.FileOutputStream; 
  4.  
  5. public class P02 { 
  6.  
  7. public static void main(String[] args) throws Exception { 
  8.         // TODO Auto-generated method stub 
  9.         //創(chuàng)建一個(gè)文件字節(jié)輸出流 
  10.         FileOutputStream fo=new FileOutputStream("text/test02",true); 
  11.         String str="公眾號"
  12.         byte b[]=str.getBytes(); 
  13.         for(int i=0;i<b.length;i++){ 
  14.             fo.write(b[i]); 
  15.         } 
  16.         fo.close(); 
  17.   } 

運(yùn)行的結(jié)果如下所示:

從上面的運(yùn)行的結(jié)果中,通過輸出流對象向text目錄下的test02.txt文件中在原來的Java進(jìn)階交流的末尾添加“公眾號”,并不會把原來的數(shù)據(jù)清空掉,是把新的數(shù)據(jù)追加文件的末尾。

四、編寫程序,接收用戶從鍵盤輸入的數(shù)據(jù),按回車后保存到text目錄下的文件test03.txt中。如果用戶輸入符號#,則退出程序。

1.例子的實(shí)現(xiàn):

  1. package cc; 
  2.  
  3. import java.io.FileOutputStream; 
  4. import java.io.IOException; 
  5.  
  6. public class P03 { 
  7. public static void main(String[] args) { 
  8.         // TODO Auto-generated method stub 
  9.         byte b[]=new byte[128]; 
  10.         System.out.println("請輸入數(shù)據(jù),數(shù)據(jù)將保存在test03文件中,輸入#則退出"); 
  11.         try{ 
  12.             FileOutputStream fo=new FileOutputStream("text/test03"); 
  13.             while(true){ 
  14.                 int i=System.in.read(b); 
  15.                 if(b[0]=='#'){ 
  16.                     break; 
  17.                 } 
  18.                 fo.write(b,0,i-1); 
  19.                 fo.write('\n'); 
  20.             } 
  21.             fo.close(); 
  22.         }catch(IOException e){ 
  23.             System.out.println(e.toString()); 
  24.         } 
  25.   } 

運(yùn)行的結(jié)果如下圖所示:

從上面的運(yùn)行的結(jié)果我們可以看出,將用戶輸入的數(shù)據(jù)保存到test03.txt是自動生成的不需要去手動創(chuàng)建test03.txt文件。

五、總結(jié)

本文主要介紹了文件字節(jié)流FileInputStrea和FileOutputStream、如何把數(shù)據(jù)追加到文件末尾實(shí)現(xiàn)的例子、通過接收用戶從鍵盤輸入的數(shù)據(jù),按回車后保存到text目錄下的文件test03.txt中。如果用戶輸入符號#,則退出程序。FileInputStrea文件字節(jié)輸入流是以字節(jié)讀取文件中的數(shù)據(jù);介紹了它的構(gòu)造方法,通過例子實(shí)現(xiàn)來理解FileInputStrea用法。FileOutputStream是OutputStream的子類,它具有文件的寫入功能;介紹了它的構(gòu)造方法,通過例子實(shí)現(xiàn)來理解FileOutputStream用法。希望通過本文的學(xué)習(xí),對你有所幫助!

 

責(zé)任編輯:姜華 來源: Java進(jìn)階學(xué)習(xí)交流
相關(guān)推薦

2011-12-19 10:30:17

Java

2021-12-09 09:30:38

字節(jié)流文件緩沖區(qū)

2013-10-17 10:35:06

TCP字節(jié)流UDP數(shù)據(jù)報(bào)

2014-06-27 09:10:23

UDPTCP

2021-12-23 09:30:35

Java 字節(jié)流 Java 基礎(chǔ)

2023-12-18 07:37:17

JavaScript防抖節(jié)流

2024-03-05 12:49:30

序列化反序列化C#

2009-03-10 13:38:01

Java序列化字節(jié)流

2010-01-27 09:55:06

Linux網(wǎng)絡(luò)字節(jié)序主機(jī)字節(jié)序

2013-06-25 09:31:50

Windows 8.1應(yīng)用商店SkyDrive

2010-09-25 10:20:05

JAVA字節(jié)碼

2020-12-22 08:15:05

Java字節(jié)流字符流

2022-02-22 08:29:59

Vue前端防抖

2021-04-15 11:43:53

C語言位域字節(jié)序

2016-06-30 10:24:47

JavaScript節(jié)流Throttle

2024-03-08 08:26:20

防抖節(jié)流delay?

2021-09-06 15:52:19

鴻蒙HarmonyOS應(yīng)用

2021-08-26 05:27:08

Base64 字節(jié)流算法

2020-12-18 11:54:22

Linux系統(tǒng)架構(gòu)

2021-02-22 09:05:59

Linux字符設(shè)備架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號