`
ahang8415
  • 浏览: 45153 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

关于用java生成html文件后编码问题的小节

    博客分类:
  • Java
阅读更多

在上传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默认的编码就可以了。

 

 

 

分享到:
评论
1 楼 kuge6688 2012-07-18  
3q 非常

相关推荐

    JAVA_API1.6文档(中文)

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...

    Java 1.6 API 中文 New

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....

    java api最新7.0

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....

    JavaAPI1.6中文chm文档 part1

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...

    JAVA安全性编程实例.doc及源码

    经过精心设计,每个小节的实例着重说明一个问题,又相互贯穿和联系。内容涉及Java加密和解密,反编译和反反编译,对类、成员变量、方法的攻击和保护,消息摘要,消息验证码,数字签名,口令保护,数字证书和证书链的...

    JavaAPI中文chm文档 part2

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...

    Java编程思想(完整版)

    在下面的小节里,将阐示Java如何帮助我们完成所有清除工作,从而极大了简化了这个问题。 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 ...

    [Java参考文档]

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax...

    [Java参考文档].JDK_API 1.6

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....

    JDK_1_6 API

    javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。 javax....

    算法导论(part1)

    书中的算法以英语加伪代码的形式给出,只要有一点程序设计经验的人都能读懂,并可以用任何计算机语言(如C/C++和Java等)方便地实现。在书中,作者将算法的讨论集中在一些比较现代的例子上,它们来自分子生物学(如...

    算法导论(part2)

    书中的算法以英语加伪代码的形式给出,只要有一点程序设计经验的人都能读懂,并可以用任何计算机语言(如C/C++和Java等)方便地实现。在书中,作者将算法的讨论集中在一些比较现代的例子上,它们来自分子生物学(如...

Global site tag (gtag.js) - Google Analytics