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

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

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

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

前言

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

一、需求

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

二、Springboot進(jìn)行數(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)出操作時(shí),返回值類型必須為void,由于項(xiàng)目有指定的返回格式(返回值類型不能為void),導(dǎo)致類型不匹配報(bào)錯(cuò),在新寫了處理方法之后,解決了這個(gè)問題。 這里使用了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方法第一個(gè)參數(shù)是導(dǎo)出方法的響應(yīng)路由,第二個(gè)參數(shù)為導(dǎo)出時(shí)攜帶的參數(shù),第三個(gè)參數(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é),并將其存儲(chǔ)在緩沖區(qū)字節(jié)數(shù)組中,讀到末尾返回-1
   while ((len = inputStream.read(b)) > 0) {
       outputStream.write(b, 0, len);
   }

到此這篇關(guān)于Springboot與vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出方法具體介紹的文章就介紹到這了,更多相關(guān)Springboot數(shù)據(jù)導(dǎo)出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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問題,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • 詳解Java如何跨平臺(tái)獲取MAC地址

    詳解Java如何跨平臺(tái)獲取MAC地址

    有時(shí)我們因?yàn)檐浖跈?quán)或者其它需要獲取主機(jī)唯一標(biāo)識(shí)而需要獲取用戶主機(jī)的MAC地址,而本文則將介紹如何通過Java來實(shí)現(xiàn)跨平臺(tái)獲取MAC地址的兩種方法,需要的朋友可以參考下
    2021-06-06
  • 簡(jiǎn)單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別

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

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

    解決對(duì)接JAVA SM2加密遇到的坑

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

    java集合類HashMap源碼解析

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

    簡(jiǎn)單了解java ORM框架JOOQ

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

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

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

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

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

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

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

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

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

最新評(píng)論