在上传html文件的时候,一定要指定写出的io流的编码,这样就可以生成指定编码的html文件。
在用java读取的时候用普通的字节流就可以了,因为他的编码就是默认的html文件的编码。
以下是代码:
/**
* 写一个字符串到指定文件中
*
* @param fullFileName
* 完整的文件路径
* @param content
* 文件内容字符串
*/
private void writeString2File(String fullFileName, String content) {
String rootpath = getProperties("rootpath");
String absolutePath = rootpath + fullFileName;
String headHtmlStr = "<html><head><meta http-equiv='content-type' content='text/html; charset=UTF-8'></head><body>";
String bodyHtmlStr = "</body></html>";
content = headHtmlStr + content + bodyHtmlStr;
File file = new File(absolutePath);
if (!file.exists()) {
file.getParentFile().mkdirs();
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
FileOutputStream fos = null;
OutputStreamWriter osw = null;
PrintWriter outFile = null;
try {
fos = new FileOutputStream(file);
osw = new OutputStreamWriter(fos,"utf-8");//这里可以生成编码是utf-8的html的文件
outFile = new PrintWriter(osw);
outFile.write(content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 读取二进制文件的内容(pdf,word,jpg),并以流的方式返回到页面
* @param absolutePath
* @param os
* @throws Exception
*/
private void readBinFile(String absolutePath, OutputStream os) throws Exception{
File file = new File(absolutePath);
FileInputStream fileIn = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = fileIn.read(buffer)) > 0)
{
os.write(buffer, 0, len);
}
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileIn != null) {
try {
fileIn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
读取文件的时候就不用指定io流的编码了,用html默认的编码就可以了。
分享到:
相关推荐
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....
经过精心设计,每个小节的实例着重说明一个问题,又相互贯穿和联系。内容涉及Java加密和解密,反编译和反反编译,对类、成员变量、方法的攻击和保护,消息摘要,消息验证码,数字签名,口令保护,数字证书和证书链的...
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...
Java程序在编译后会生成字节码(.class文件),这些字节码可以在任何安装了Java虚拟机(JVM)的平台上运行。JVM负责解释执行这些字节码,从而实现了Java的“一次编写,到处运行”的特点。 **1.1.6 ClassLoader** ...
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....
Java五线谱处理类库abc4j是一个专为Java开发者设计的开源库,它提供了强大的功能,用于解析、操作和生成ABC音乐格式的乐谱。ABC是一种文本编码标准,用于简洁地表示五线谱,特别适合于存储和共享民间音乐。abc4j库的...
节拍器的核心是能够准确地生成和间隔时间固定的“节拍”,这个过程通常涉及到计时器和定时事件的处理。在软件实现中,这可能涉及到操作系统级别的定时器API,例如Java的`java.util.Timer`类或C#的`System.Threading....
1. `page指令`:定义JSP页面的属性,如字符编码、错误页、导入的Java包等。 2. `include指令`:用于在编译时将一个文件包含到JSP页面中。 3. `taglib指令`:引入自定义标签库,比如Struts、JSF等框架的标签。 **JSP...
- **过滤器**:讲解如何使用过滤器拦截请求、进行预处理或后处理等操作。 #### 第6讲:Servlet介绍与实现 - **Servlet基本概念**:阐述Servlet的工作原理和生命周期。 - **Servlet配置与部署**:讨论web.xml文件的...
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....