日期:2014-05-19  浏览次数:20662 次

怎么会出现 。。 乱码。。。。。。
测试文章中一个单词的出现次数怎么会出现乱码???求大神带啊。。。。


import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
 /**
  *author 谁来带我飞翔
  *vesion 创建时间 :2012-12-1下午10:32:45
  *类说明 :测试一篇英文中某个单词出现的次数
  */
 public class CountwordsDemo {
 
  /**
   * @param args
   */
  public static void main(String[] args) throws IOException{
  // TODO Auto-generated method stub
  FileInputStream f = new FileInputStream("E:测试.doc");
  BufferedInputStream b = new BufferedInputStream(f);
  int a = 0,sum = 0;
  String [] s = null;
  String ss = null;
  StringBuffer sb = new StringBuffer();
  while((a = b.read())!=-1){
  ss = String.valueOf((char)a);
  sb.append(ss);
  }
  s = sb.toString().split(" ");
  for(int i=0;i<s.length;i++){
  System.out.print(" "+s[i]);
  if(s[i].equalsIgnoreCase("the")){
  sum++;
  }
  }
  System.out.println("单词the在文章中总共出现了:"+sum+"次");
  if(b != null){
  b.close();
  }
  if(f != null){
  f.close();
  }
  }
 }
------解决方案--------------------
doc文档的存储方式你又不知道,你就简单的以字符文本方式进行读取,肯定是乱码的啊。。。。。
------解决方案--------------------
  FileInputStream f = new FileInputStream("E:测试.doc"); 
InputStreamReader reader = new InputStreamReader(f,"gbk");
  BufferedInputStream b = new BufferedInputStream(reader);

文本读写请包装reader,并指定相应的字符编码
doc如果是写字本文件应该可以读取,word的就不行,要用poi
------解决方案--------------------
引用:
FileInputStream f = new FileInputStream("E:测试.doc"); 
InputStreamReader reader = new InputStreamReader(f,"gbk");
  BufferedInputStream b = new BufferedInputStream(reader);

文本读写请包装r……

使用POI专门针对office进行读取操作的,