欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

base64編碼處理大文件

在做項(xiàng)目的時(shí)候遇到需要將文件轉(zhuǎn)為base64編碼,并存儲(chǔ)在文件中。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的資興網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

在將文件轉(zhuǎn)為base64編碼是會(huì)將文件讀入內(nèi)存,進(jìn)行base64編碼,輸出到文件中。代碼入下:

1
2
3
4
5
6
7
8
9
10
FileInputStream stream =?new?FileInputStream("D:\\桌面\\程序員-第4版.pdf");
?????ByteArrayOutputStream?out?=?new?ByteArrayOutputStream(1024);
?????byte[] b =?new?byte[1024];
?????int?n;
?????while?((n = stream.read(b)) != -1) {
?????????out.write(b, 0, n);
?????}
?????stream.close();
?????out.close();
?????System.out.println(new?String(Base64.encodeBase64(out.toByteArray())));???

但是大文件在進(jìn)行base64編碼的時(shí)候就會(huì)遇到OOM(OOM為out of memory的簡稱,稱之為內(nèi)存溢出)。

產(chǎn)生OOM的原因:

  • 文件太大,超出了內(nèi)存

  • 文件可以正常讀入內(nèi)存,由于base64編碼后的文件比原來的文件大1/3,在編碼的過程中超出內(nèi)存

由于3個(gè)常規(guī)字符可以轉(zhuǎn)換為4個(gè)base64編碼字符,所以使用3的公倍數(shù)作為緩沖區(qū)大小。

所以在對大文件進(jìn)行base64編碼時(shí)可以采用分段編碼,進(jìn)行輸出。代碼入下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//使用分段上傳的讀取文件的方式將大文件轉(zhuǎn)換為base64編碼數(shù)據(jù)?官網(wǎng) www.1b23.com
????????ByteArrayOutputStream os1 =?new?ByteArrayOutputStream();
????????InputStream file1 =?new?FileInputStream("D:\\桌面\\程序員-第4版.pdf");
????????byte[] byteBuf =?new?byte[3 * 1024 * 1024];
????????byte[] base64ByteBuf;
????????int?count1;?//每次從文件中讀取到的有效字節(jié)數(shù)
????????while?((count1 = file1.read(byteBuf)) != -1) {
????????????if?(count1 != byteBuf.length) {//如果有效字節(jié)數(shù)不為3*1000,則說明文件已經(jīng)讀到尾了,不夠填充滿byteBuf了
????????????????byte[] copy = Arrays.copyOf(byteBuf, count1);?//從byteBuf中截取包含有效字節(jié)數(shù)的字節(jié)段
????????????????base64ByteBuf = Base64.encodeBase64(copy);?//對有效字節(jié)段進(jìn)行編碼
????????????}?else?{
????????????????base64ByteBuf = Base64.encodeBase64(byteBuf);
????????????}
????????????os1.write(base64ByteBuf, 0, base64ByteBuf.length);
????????????os1.flush();
????????}
????????file1.close();
????????System.out.println(os1.toString());

以上代碼是將編碼后的數(shù)據(jù)輸出至控制臺(tái)。其實(shí)最好是將文件分段進(jìn)行編碼,分段輸出,這樣不管文件多大,都可以進(jìn)行編碼,并且不會(huì)OOM。以下是將文件輸出至txt文檔中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ByteArrayOutputStream os1 =?new?ByteArrayOutputStream();
???????InputStream file1 =?new?FileInputStream("D:\\桌面\\程序員-第4版.pdf");
???????byte[] byteBuf =?new?byte[3 * 1024 * 1024];
???????byte[] base64ByteBuf;
???????int?count1;?//每次從文件中讀取到的有效字節(jié)數(shù)
???????File file =?new?File("D:\\1.txt");
???????while?((count1 = file1.read(byteBuf)) != -1) {
???????????if?(count1 != byteBuf.length) {//如果有效字節(jié)數(shù)不為3*1000,則說明文件已經(jīng)讀到尾了,不夠填充滿byteBuf了
???????????????byte[] copy = Arrays.copyOf(byteBuf, count1);?//從byteBuf中截取包含有效字節(jié)數(shù)的字節(jié)段
???????????????base64ByteBuf = Base64.encodeBase64(copy);?//對有效字節(jié)段進(jìn)行編碼
???????????}?else?{
???????????????base64ByteBuf = Base64.encodeBase64(byteBuf);
???????????}
???????????FileUtils.writeByteArrayToFile(file, base64ByteBuf,?true);?// 將轉(zhuǎn)換后的數(shù)據(jù)寫入文件中,該方法會(huì)自動(dòng)創(chuàng)建文件
???????????os1.flush();
???????}
???????file1.close();

文章題目:base64編碼處理大文件
文章網(wǎng)址:http://aaarwkj.com/article48/jjgohp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、服務(wù)器托管、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
av中文字幕在线激情| 欧美成人极品一区二区三区| 韩国福利短片在线观看| 亚洲av乱码一区二区三| 久久人妻一区二区三区免费密臀 | 亚洲欧美日韩香蕉在线观看| 婷婷久久香蕉毛片毛片| 亚洲精品久久麻豆蜜桃| 亚洲中文字幕永久免费| 国产三级精品三级在线专区1| 亚洲精品黄色片中文字幕| 中文字幕制服日韩久久一区| 日韩欧美性生活免费观看| 成人深夜福利视频在线| 日本在线电影一区二区三区| 久久精品国产亚洲av麻豆网站| 亚洲五月六月激情综合| 欧美高清一区二区在线播放| 五月天丁香婷婷一区二区| 爱我久久视频网免费视频| 日本一区二区三区不卡在线| 日本人妻精品一区二区| 特别黄的日本免费视频| 欧美激情欧美狂野欧美精品 | 久久精品国产亚洲av不丁香| 欧美日韩丝袜一区二区| 成年人免费观看黄色片| 国产成人综合久久三区北岛玲| 日韩一区二区三精品| 免费人成网站视频在线观看不卡| 欧美中文字幕在线精品| 亚洲天堂av日韩在线| 热99精品视频在线观看| 日韩精品在线观看天堂| 久久精品视频视频视频| 内射小美女阴户毛片在线| 一起草视频在线观看视频| 日韩高清视频 一区二区| 亚洲av成人一区二区三区| 中文字幕一区二区三区三级| 日韩精品一区二区国产|