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

Springboot與vue實現(xiàn)數(shù)據(jù)導(dǎo)出方法具體介紹

 更新時間:2023年02月09日 08:31:26   作者:進擊的Coders  
這篇文章主要介紹了Springboot與vue實現(xiàn)數(shù)據(jù)導(dǎo)出方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

前言

這兩天在項目中使用到Java的導(dǎo)入導(dǎo)出功能,以前對這塊有一定了解,但是沒有系統(tǒng)學習過,今天在這里進行記錄,方便以后查閱。

一、需求

項目的需求是將項目中的JSON實體數(shù)據(jù)導(dǎo)出為.json文件,導(dǎo)出的文件,可以作為元數(shù)據(jù)導(dǎo)入進行實體初始化。項目不是使用普通的springboot框架(普通的springboot框架很容易完成),因此走了一些彎路,在這篇文章中,將先講解使用springboot框架進行導(dǎo)出,然后再講解非springboot框架的導(dǎo)出。

二、Springboot進行數(shù)據(jù)導(dǎo)出

1.Java后端代碼

@RequestMapping("/download")
public void download(String path, HttpServletResponse response) {
	// 固定寫法
	response.setContentType("application/OCTET-STREAM;charset=UTF-8");
	response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
	File file = new File(path);
	try {
	    InputStream fis = new FileInputStream(file);
	    OutputStream out = new BufferedOutputStream(response.getOutputStream());
	    byte[] buffer = new byte[1024];
	    int len;
	    while ((len = fis.read(buffer)) != -1) {
	        out.write(buffer, 0, len);
	        out.flush();
	    }
	} catch (Exception e) {
		throw new RuntimeException(e);
	}
}

導(dǎo)出操作時,返回值類型必須為void,由于項目有指定的返回格式(返回值類型不能為void),導(dǎo)致類型不匹配報錯,在新寫了處理方法之后,解決了這個問題。 這里使用了BufferedOutputStream,能加快導(dǎo)出速度。不用BufferedOutputStream,只使用response.getOutputStream()也是可以的。此外,這里使用了循環(huán)寫入輸出流中,而不是一次寫入。

2.Vue前端代碼

    handleExport(row) {
      const id = row.id || this.ids
      const name = row.name || this.names[0]
      const code = row.code || this.codes
      const params = {
        exportCodes: JSON.stringify(code)
      }
      this.download('/Thingmax/Things/Export',  params,  name + '.json')
    },

download方法第一個參數(shù)是導(dǎo)出方法的響應(yīng)路由,第二個參數(shù)為導(dǎo)出時攜帶的參數(shù),第三個參數(shù)為導(dǎo)出的文件名稱。

3.其他幾種Java后端導(dǎo)出方法

1、使用BufferedOutputStream,一次性寫入

exportEntities.put("Entities", entities);
String content = exportEntities.toJSONString();
try {
	BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
	out.write(content.getBytes(StandardCharsets.UTF_8));
	out.flush();
	out.close();
} catch (Exception e) {
     throw new RuntimeException(e);
 }

一次性將數(shù)據(jù)讀取到內(nèi)存,通過響應(yīng)輸出流輸出到前端

2、不使用BufferedOutputStream,循環(huán)寫入

InputStream inputStream = new FileInputStream(path);
ServletOutputStream outputStream = response.getOutputStream();
   byte[] b = new byte[1024];
   int len;
   //從輸入流中讀取一定數(shù)量的字節(jié),并將其存儲在緩沖區(qū)字節(jié)數(shù)組中,讀到末尾返回-1
   while ((len = inputStream.read(b)) > 0) {
       outputStream.write(b, 0, len);
   }

到此這篇關(guān)于Springboot與vue實現(xiàn)數(shù)據(jù)導(dǎo)出方法具體介紹的文章就介紹到這了,更多相關(guān)Springboot數(shù)據(jù)導(dǎo)出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java.io.UncheckedIOException: Cannot delete C:\Users\guo\AppData\Local\Temp\tomcat.8081問題

    java.io.UncheckedIOException: Cannot delete C

    本文主要介紹了java.io.UncheckedIOException: Cannot delete C:\Users\guo\AppData\Local\Temp\tomcat.8081問題,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • 詳解Java如何跨平臺獲取MAC地址

    詳解Java如何跨平臺獲取MAC地址

    有時我們因為軟件授權(quán)或者其它需要獲取主機唯一標識而需要獲取用戶主機的MAC地址,而本文則將介紹如何通過Java來實現(xiàn)跨平臺獲取MAC地址的兩種方法,需要的朋友可以參考下
    2021-06-06
  • 簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別

    簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別

    這篇文章主要介紹了簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 解決對接JAVA SM2加密遇到的坑

    解決對接JAVA SM2加密遇到的坑

    這篇文章主要介紹了解決對接JAVA SM2加密遇到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java集合類HashMap源碼解析

    java集合類HashMap源碼解析

    這篇文章主要介紹了Java集合之HashMap用法,結(jié)合實例形式分析了java map集合中HashMap定義、遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2021-06-06
  • 簡單了解java ORM框架JOOQ

    簡單了解java ORM框架JOOQ

    這篇文章主要介紹了簡單了解java ORM框架JOOQ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • spring boot(三)之Spring Boot中Redis的使用

    spring boot(三)之Spring Boot中Redis的使用

    這篇文章主要介紹了spring boot(三)之Spring Boot中Redis的使用,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • 使用Gson將字符串轉(zhuǎn)換成JsonObject和JsonArray

    使用Gson將字符串轉(zhuǎn)換成JsonObject和JsonArray

    這篇文章主要介紹了使用Gson將字符串轉(zhuǎn)換成JsonObject和JsonArray,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • mybatis遞歸 一對多的實現(xiàn)方法示例

    mybatis遞歸 一對多的實現(xiàn)方法示例

    這篇文章主要給大家介紹了關(guān)于mybatis遞歸 一對多實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • Spring復(fù)雜對象創(chuàng)建的方式小結(jié)

    Spring復(fù)雜對象創(chuàng)建的方式小結(jié)

    這篇文章主要介紹了Spring復(fù)雜對象創(chuàng)建的三種方式,現(xiàn)在使用Spring如何創(chuàng)建這種類型的對象?Spring中提供了三種方法來創(chuàng)建復(fù)雜對象,需要的朋友可以參考下
    2022-01-01

最新評論