最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用ByteArrayOutputStream實現將數據寫入本地文件

 更新時間:2021年12月10日 12:01:03   作者:Debug卷心菜  
這篇文章主要介紹了使用ByteArrayOutputStream實現將數據寫入本地文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

ByteArrayOutputStream將數據寫入本地文件

在一個項目中做一次性校驗部分,需要將校驗后數據寫入表格后上傳。巧的是,服務器Down了。作為一個新手實習生菜鳥,為了測試自己的代碼和輸出結果有沒有毛病,在大神同事的指點下選擇了先將表格輸出到本地

于是在百度瘋狂搜索“輸出流”、“輸出文件到本地”、“文件流”等,經過多方搜集和探查以及加工,最后加上了一小段代碼

//測試-將表格導入本地文件
        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream("C:\\Users\\Administrator.DESKTOP-SFAEOA8\\Desktop\\consistencyCheckCommodityRuleTemplate.xlsx");
            fileOutputStream.write(byteArrayOutputStream.toByteArray());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

以下是上傳Excel的部分代碼。將最后的上傳文件到dfs的方法注掉,以在準備好的文件 C:\\Users\\Administrator.DESKTOP-SFAEOA8\\Desktop\\consistencyCheckCommodityRuleTemplate.xlsx 中輸出需要的結果

public void uploadExcel() {
 
        //獲取校驗數據
        List<DTO> consistencyCheck = getConsistencyCheck();
 
        //創(chuàng)建模板信息
        DataModel dataModel = setDataModel();
        ......(此處省略一萬字)
 
        //創(chuàng)建ExcelData
        ExcelData excelData = setExcelData();
        ......(此處也省略一萬字)
 
        //創(chuàng)建日志數據
        ConsistencyCheckLog consistencyCheckLog = setConsistencyCheckLog();
        ......(此處又省略一萬字)
 
        //創(chuàng)建excel
        ByteArrayOutputStream  byteArrayOutputStream = createExcel(dataModel, excelData);
 
        //測試-將表格導入本地文件
        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream("C:\\Users\\Administrator.DESKTOP-SFAEOA8\\Desktop\\consistencyCheckCommodityRuleTemplate.xlsx");
            fileOutputStream.write(byteArrayOutputStream.toByteArray());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        //上傳excel(無法上傳 先注掉好了)
        //uploadFileToDfs(consistencyCheckLog, byteArrayOutputStream);
    }

這樣就OK了,只添加了測試的部分,得到數據后也是放下了這顆菜心

那來了解一下ByteArrayOutPutStream吧

  • ByteArrayOutputStream類是在創(chuàng)建它的實例時,程序內部創(chuàng)建一個byte型別數組的緩沖區(qū),然后利ByteArrayOutputStream和ByteArrayInputStream的實例向數組中寫入或讀出byte型數據
  • 字節(jié)數組輸出流在內存中創(chuàng)建一個字節(jié)數組緩沖區(qū),所有發(fā)送到輸出流的數據保存在該字節(jié)數組緩沖區(qū)
  • 成功創(chuàng)建字節(jié)數組輸出流對象后,可以參見以下列表中的方法,對流進行寫操作或其他操作
序號 方法描述
1 public void reset() 將此字節(jié)數組輸出流的 count 字段重置為零,從而丟棄輸出流中目前已累積的所有數據輸出。
2 public byte[] toByteArray() 創(chuàng)建一個新分配的字節(jié)數組。數組的大小和當前輸出流的大小,內容是當前輸出流的拷貝。
3 public String toString() 將緩沖區(qū)的內容轉換為字符串,根據平臺的默認字符編碼將字節(jié)轉換成字符。
4 public void write(int w) 將指定的字節(jié)寫入此字節(jié)數組輸出流。
5 public void write(byte []b, int off, int len) 將指定字節(jié)數組中從偏移量 off 開始的 len 個字節(jié)寫入此字節(jié)數組輸出流。
6 public void writeTo(OutputStream outSt) 將此字節(jié)數組輸出流的全部內容寫入到指定的輸出流參數中。

在表格輸出時

Java輸出流FileOutputStream也發(fā)揮了至關重要的作用

使用FileOutputStream寫入文件的過程同使用FileInputStream過程相同,都是先用File類打開本地文件,實例化輸入輸出流,然后調用流的讀寫方法讀取或寫入數據,最后關閉流。

FileOutputStream的寫入方法

FileOutputStream類提供了多種文件寫入方法,可以單獨寫一個字節(jié)到文件,也可以寫一個byte數組到文件,也可以取byte數組的部分數據寫入到文件。

把讀取的結果寫入到ByteArrayOutputStream

  • FileOutputStream 可以把數據寫到文件中去
  • ByteArrayOutputStream 可以把其他地方的讀入的數據寫到這里面,最后獲取數據所有的 byte[],相當于可以把數據全部讀到內存中來.
 // 把讀取的結果寫入到ByteByteArrayOutputStream
 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  String s = "C:\\a.txt";
  int len = 0;
  FileInputStream stream = new FileInputStream(s);
  ByteArrayOutputStream stream2 = new ByteArrayOutputStream();
  byte[] buffer = new byte[5];
  //先讀后寫,循環(huán)讀寫
  while ((len = stream.read(buffer)) != -1) {
   stream2.write(buffer, 0, len);
  }
  byte[] data = stream2.toByteArray();
  System.out.println(new String(data));
 }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的方法

    在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的方法

    這篇文章主要介紹了在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • hutool實戰(zhàn):IoUtil 流操作工具類(將內容寫到流中)

    hutool實戰(zhàn):IoUtil 流操作工具類(將內容寫到流中)

    這篇文章主要介紹了Go語言的io.ioutil標準庫使用,是Golang入門學習中的基礎知識,需要的朋友可以參考下,如果能給你帶來幫助,請多多關注腳本之家的其他內容
    2021-06-06
  • Java通過jersey實現客戶端圖片上傳示例

    Java通過jersey實現客戶端圖片上傳示例

    本篇文章主要介紹了Java通過jersey實現客戶端圖片上傳示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Java stringBuilder的使用方法及實例解析

    Java stringBuilder的使用方法及實例解析

    這篇文章主要介紹了Java stringBuilder的使用方法及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • MyBatis中XML映射器的實現

    MyBatis中XML映射器的實現

    MyBatis的真正強大在于它的語句映射,映射器的XML文件就顯得相對簡單,本文主要介紹了MyBatis中XML映射器的實現,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 淺談Java引用和Threadlocal的那些事

    淺談Java引用和Threadlocal的那些事

    這篇文章主要介紹了Java引用和Threadlocal的那些事,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Java日常練習題,每天進步一點點(3)

    Java日常練習題,每天進步一點點(3)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • 淺談幾種Java自定義異常處理方式

    淺談幾種Java自定義異常處理方式

    在Java中,異常是一種常見的處理機制,本文主要介紹了淺談幾種Java自定義異常處理方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Java 大小寫最快轉換方式實例代碼

    Java 大小寫最快轉換方式實例代碼

    這篇文章主要介紹了Java 大小寫最快轉換方式實例代碼的相關資料,需要的朋友可以參考下
    2017-07-07
  • Java中的Gradle與Groovy的區(qū)別及存在的關系

    Java中的Gradle與Groovy的區(qū)別及存在的關系

    這篇文章主要介紹了Java中的Gradle與Groovy的區(qū)別及存在的關系,Groovy是一種JVM語言,它可以編譯為與Java相同的字節(jié)碼,并且可以與Java類無縫地互操作,Gradle是Java項目中主要的構建系統(tǒng)之一,下文關于兩者的詳細內容,需要的小伙伴可以參考一下
    2022-02-02

最新評論

乌海市| 浑源县| 怀柔区| 临泽县| 尉氏县| 东阿县| 澄迈县| 特克斯县| 樟树市| 巩义市| 平度市| 甘孜县| 阳春市| 合阳县| 贵港市| 长垣县| 夏邑县| 庆元县| 汝州市| 大庆市| 集安市| 朝阳区| 江源县| 吉隆县| 西安市| 安化县| 大城县| 察雅县| 永平县| 宁德市| 达尔| 乐东| 仁怀市| 海安县| 稻城县| 阜新市| 县级市| 象山县| 小金县| 郎溪县| 达拉特旗|