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

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)出方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

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

前言

這兩天在項(xiàng)目中使用到Java的導(dǎo)入導(dǎo)出功能,以前對(duì)這塊有一定了解,但是沒(méi)有系統(tǒng)學(xué)習(xí)過(guò),今天在這里進(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) {
	// 固定寫(xiě)法
	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í),返回值類(lèi)型必須為void,由于項(xiàng)目有指定的返回格式(返回值類(lèi)型不能為void),導(dǎo)致類(lèi)型不匹配報(bào)錯(cuò),在新寫(xiě)了處理方法之后,解決了這個(gè)問(wèn)題。 這里使用了BufferedOutputStream,能加快導(dǎo)出速度。不用BufferedOutputStream,只使用response.getOutputStream()也是可以的。此外,這里使用了循環(huán)寫(xiě)入輸出流中,而不是一次寫(xiě)入。

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)出的文件名稱(chēng)。

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

1、使用BufferedOutputStream,一次性寫(xiě)入

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)存,通過(guò)響應(yīng)輸出流輸出到前端

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

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)文章

  • SpringBoot+kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能詳解

    SpringBoot+kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何結(jié)合kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2024-01-01
  • 編程入門(mén):掌握J(rèn)ava運(yùn)算符技巧

    編程入門(mén):掌握J(rèn)ava運(yùn)算符技巧

    掌握J(rèn)ava運(yùn)算符技巧,能讓你的編程之旅輕松許多,本指南將帶你深入了解如何巧妙地使用這些強(qiáng)大的工具,讓代碼不僅高效,還充滿(mǎn)樂(lè)趣,跟著我們一起,讓你的Java代碼在運(yùn)算符的魔法下煥發(fā)新生!
    2023-12-12
  • java編寫(xiě)貪吃蛇小游戲

    java編寫(xiě)貪吃蛇小游戲

    貪吃蛇是經(jīng)典手機(jī)游戲,既簡(jiǎn)單又耐玩。通過(guò)控制蛇頭方向吃蛋,使得蛇變長(zhǎng),從而獲得積分。今天我們就來(lái)用java來(lái)實(shí)現(xiàn)下貪吃蛇小游戲,有需要的小伙伴可以參考下
    2015-03-03
  • spring boot自帶圖片服務(wù)器使用詳解

    spring boot自帶圖片服務(wù)器使用詳解

    這篇文章主要為大家詳細(xì)介紹了spring boot自帶圖片服務(wù)器的使用 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • MyBatis5中Spring集成MyBatis事物管理

    MyBatis5中Spring集成MyBatis事物管理

    這篇文章主要介紹了MyBatis5中MyBatis集成Spring事物管理的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 解決Mybatis映射文件mapper.xml中的注釋問(wèn)題

    解決Mybatis映射文件mapper.xml中的注釋問(wèn)題

    這篇文章主要介紹了解決Mybatis映射文件mapper.xml中的注釋問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • IntelliJ IDEA 創(chuàng)建spring boot 的Hello World 項(xiàng)目(圖解)

    IntelliJ IDEA 創(chuàng)建spring boot 的Hello World 項(xiàng)目(圖解)

    這篇文章主要介紹了IntelliJ IDEA 創(chuàng)建spring boot 的Hello World 項(xiàng)目的步驟詳解,需要的朋友可以參考下
    2018-01-01
  • Eclipse遠(yuǎn)程debug的步驟與注意事項(xiàng)

    Eclipse遠(yuǎn)程debug的步驟與注意事項(xiàng)

    今天小編就為大家分享一篇關(guān)于Eclipse遠(yuǎn)程debug的步驟與注意事項(xiàng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Mybatis-Plus使用@TableField實(shí)現(xiàn)自動(dòng)填充日期的代碼示例

    Mybatis-Plus使用@TableField實(shí)現(xiàn)自動(dòng)填充日期的代碼示例

    數(shù)據(jù)庫(kù)中經(jīng)常有create_time,update_time兩個(gè)字段,在代碼中設(shè)置時(shí)間有點(diǎn)太麻煩了?mybatis-plus可以幫我們自動(dòng)填充,本文主要介紹了Mybatis-Plus使用@TableField實(shí)現(xiàn)自動(dòng)填充日期的代碼示例,感興趣的可以了解一下
    2022-04-04
  • Java實(shí)現(xiàn)二分查找樹(shù)及其相關(guān)操作

    Java實(shí)現(xiàn)二分查找樹(shù)及其相關(guān)操作

    二分查找樹(shù)是一種有組織的二叉樹(shù)。我們可以通過(guò)鏈接節(jié)點(diǎn)表示這樣一棵樹(shù),二分查找樹(shù)(Binary Search Tree)的基本操作有搜索、求最大值、求最小值、求前驅(qū)、求后繼、插入及刪除,對(duì)java二分查找樹(shù)相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-07-07

最新評(píng)論

滦平县| 永昌县| 太康县| 萝北县| 济源市| 厦门市| 噶尔县| 福鼎市| 长宁县| 洮南市| 镇沅| 荔浦县| 繁峙县| 泰和县| 江陵县| 渭南市| 比如县| 长丰县| 苏州市| 兰坪| 昭觉县| 长汀县| 青阳县| 张家界市| 肃宁县| 竹溪县| 香格里拉县| 阳原县| 元氏县| 南通市| 普宁市| 高平市| 泗水县| 博罗县| 齐河县| 白水县| 普安县| 安多县| 乡城县| 洛浦县| 宁波市|