JAVA文件讀寫操作詳解
一、讀文件BufferedInputStream
BufferedInputStream
必須傳入一個InputStream
(一般是FileInputStream
)
常用方法:
從該輸入流中讀取一個字節(jié) public int read();
從此字節(jié)輸入流中給定偏移量處開始將各字節(jié)讀取到指定的 byte 數(shù)組中。
public int read(byte[] b,int off,int len)
應用實例:
import java.io.BufferedInputStream; import java.io.FileInputStream; /** * BufferedInputStream:緩沖輸入流 * FileInputStream:文件輸入流 */ public class FileReadToString { public static void main(String[] args){ try { FileInputStream fis=new FileInputStream("WynnNi.txt"); BufferedInputStream bis=new BufferedInputStream(fis); String content=null; //自定義緩沖區(qū) byte[] buffer=new byte[10240]; int flag=0; while((flag=bis.read(buffer))!=-1){ content+=new String(buffer, 0, flag); } System.out.println(content); //關閉的時候只需要關閉最外層的流就行了 bis.close(); } catch (Exception e) { e.printStackTrace(); } } }
二、寫文件BufferedOutputStream
創(chuàng)建一個新的緩沖輸出流,以將數(shù)據(jù)寫入指定的底層輸出流。
常用方法:
//向輸出流中輸出一個字節(jié)
public void write(int b);//將指定 byte 數(shù)組中從偏移量 off 開始的 len 個字節(jié)寫入此緩沖的輸出流。
public void write(byte[] b,int off,int len);//刷新此緩沖的輸出流。這迫使所有緩沖的輸出字節(jié)被寫出到底層輸出流中。
public void flush();
應用實例
/** * BufferedOutputStream:緩沖輸出流 * FileOutPutStream:文件輸出流 */ public class StringOutPutToFile { public static void main(String[] args){ try { FileOutputStream fos=new FileOutputStream("WynnNi.txt"); BufferedOutputStream bos=new BufferedOutputStream(fos); String content="xxxxxxxxx!"; bos.write(content.getBytes(),0,content.getBytes().length); bos.flush(); bos.close(); } catch (Exception e) { e.printStackTrace(); } } }
三、實際應用場景
被調(diào)用方如何將文件傳輸給調(diào)用方并在本地輸出文件
1、被調(diào)用方將文件讀入緩沖區(qū)byte[]
2、將緩沖區(qū)數(shù)據(jù)轉(zhuǎn)換成String傳遞,String str = Base64.getEncoder().encodeToString(bytes);
3、接收方將String反轉(zhuǎn)為byte[],bytes=Base64.getDecoder().decode(str);
4、接收方將緩沖區(qū)輸出到文件
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
詳解Kotlin中如何實現(xiàn)類似Java或C#中的靜態(tài)方法
Kotlin中如何實現(xiàn)類似Java或C#中的靜態(tài)方法,本文總結(jié)了幾種方法,分別是:包級函數(shù)、伴生對象、擴展函數(shù)和對象聲明。這需要大家根據(jù)不同的情況進行選擇。2017-05-05spring aop之鏈式調(diào)用的實現(xiàn)
這篇文章主要介紹了spring aop之鏈式調(diào)用的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02不規(guī)范使用ThreadLocal導致bug分析解決
這篇文章主要為大家介紹了不規(guī)范使用ThreadLocal導致bug分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01