使用用struts2

 

struts.xml配置

 

<result name="html" type="stream">
<param name="contentType">text/html</param>
<!-- 指定提供InputStream的filed name -->
<param name="inputName">fileStream</param>
<param name="bufferSize">1024</param>
</result>



 

java:

 

String ff_name = 「path」;
File ff = new File(ff_name);
InputStream is = null;
if (ff != null && ff.exists()) {
is = new FileInputStream(ff);
} else {
ff_name = URLEncoder.encode(file_name, "GB2312");
ff = new File(ff_name);
if (ff != null && ff.exists()) {
is = new FileInputStream(ff);
} else {
is = OperationFileAction.class.getClassLoader().getResourceAsStream("noFind.htm");
}

 

}
InputStreamReader read = new InputStreamReader(is,getFileCharacterEnding(ff));
BufferedReader in = new BufferedReader(read);
StringBuffer sb = new StringBuffer();
String line;
while ((line = in.readLine()) != null) {
sb.append(line);
}
read.close();
in.close();
fileStream = new ByteArrayInputStream(str.getBytes("UTF-8"));
fileStream.close();

 

return "html";

 

獲取讀到的檔的編碼:

 

private String getFileCharacterEnding(File file) {
String fileCharacterEnding = "UTF-8";
CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
detector.add(JChardetFacade.getInstance());
Charset charset = null;
try {
charset = detector.detectCodepage(file.toURL());
} catch (Exception e) {
e.printStackTrace();
}
if (charset != null) {
fileCharacterEnding = charset.name();
}
return fileCharacterEnding;
}

 

還需要加入三個jar包。

 

antlr.jar

 

chardet.jar

 

cpdetector_1.0.7.jar

 

這樣就OK了。
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()