A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 凝聚 中级黑马   /  2013-10-23 11:15  /  1408 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 凝聚 于 2013-10-23 21:24 编辑

package Nineteen;
import java.io.*;
public class nine {
        public static void main(String[] args)throws IOException
        {
                //FileReader fr=new FileReader("D:\\wo.doc");
                FileReader fr=new FileReader("s.doc");
        LineNumberReader line=new LineNumberReader(fr);
        String str=null;
        while((str=line.readLine())!=null)
        {
                System.out.println(line.getLineNumber()+":"+str);
        }
        line.close();
        }

}
这段代码中FileReader fr=new FileReader("s.doc");这句话中的“s.doc"word文档是自己写的保存在默认路径下的,读出来却是乱码,而用代码生成的文件就能读出来,这是怎么回事啊,求大神帮忙。

评分

参与人数 1技术分 +1 收起 理由
To + 1 尽量把代码贴在代码框中

查看全部评分

8 个回复

正序浏览
为了指定文件的编码方式:
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(saveFilename),"编码方式")));

试试{:soso_e100:}

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
凝聚 中级黑马 2013-10-23 12:15:54
8#
1961993790 发表于 2013-10-23 12:05
这是因为编码方式不同所导致,需要使用和记事本一样的编码格式对文件进行解析,就能正常显示了,
而word和 ...

但是它能解析word 文档啊,只是这个文档是代码生成的word文档“FileWrite"写的,但是我手动的亲自建一个word文档写上点内容后就变成了乱码。
回复 使用道具 举报
这是因为编码方式不同所导致,需要使用和记事本一样的编码格式对文件进行解析,就能正常显示了,
而word和记事本文件编码不同,所以解析出来的文字显示出乱码!希望对您有帮助。{:soso_e100:}
回复 使用道具 举报
大神耶,,,读取word要用特定的类, 你这个方法只能读取文本类型的文件

加上poi-3.0.2的两个jar包

File file = new File(doc);
FileInputStream fileInputStream = getFileInputStream(file);
WordExtractor wordExtractor = new WordExtractor(fileInputStream);
String text = wordExtractor.getText();

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 回答的不错

查看全部评分

回复 使用道具 举报
深情小建 发表于 2013-10-23 11:43
应该是编码的问题,你电脑可能默认是GBK编码,但是你数据保存的时候用的是UTF-8的数据。然后就出现了,再打 ...

该怎么办
回复 使用道具 举报
txt文档不是乱码
回复 使用道具 举报
你试一试用txt文件试一下看看是不是乱码!
回复 使用道具 举报
应该是编码的问题,你电脑可能默认是GBK编码,但是你数据保存的时候用的是UTF-8的数据。然后就出现了,再打开显示乱码的问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马