獲取讀取到的位元組流中的檔案編碼防止亂碼

2021-10-06 02:48:51 字數 863 閱讀 8065

亂碼的根本原因是輸入流和輸出流的編碼方式不一致造成的,這個可以依據輸入流的編碼來動態的使用改編碼輸出1.pom.xml加入:

com.googlecode.juniversalchardet

juniversalchardet

1.0.3

2.  工具類

class getbyteencode 

return encoding;

}}

3.使用:

string filenameiso = new string(data.getfilename().getbytes("utf-8"), "iso-8859-1");

/* 設定檔名 */

response.addheader("content-disposition", "filename=\"" + filenameiso + "\"");

os = response.getoutputstream();

byte b = fileinfo.getdata().getfilebyte();

string encoding = new getbyteencode().getencoding(b); //編碼判斷 --動態

response.setheader("content-type", "text/html;charset=" + encoding);

string a = new string(fileinfo.getdata().getfilebyte(), encoding);

os.write(a.getbytes(encoding));

Java中對於位元組流的讀取方式

今天我想介紹一下socket中位元組流的讀取方式,避免在socket讀取過程中發生的斷包問題。1.設計位元組傳送的方式 在位元組流的讀寫過程中,需要先傳送乙個代表傳送內容長度的位元組,然後再傳送內容,在接收端先接受傳送端傳送的內容長度,再根據長度來讀取相應的內容。2.構建位元組流的讀寫類 buffe...

讀取位元組流的方法解決

如果不知道原檔案的大小,可以這樣 filestream fs2 new filestream 2.txt filemode.create byte buffer new byte 4096 這裡的大小可以設定為receivebuffersize while count fs.read buffer,...

Java中的位元組流

1 位元組輸入流 inputstream 抽象類,其子類 fileinputstream file f 引數為file物件 fileinputstream string path 引數為檔案路徑 objectinputstream inputstream in 物件輸入流,用於反序列化操作 2 位元...