黑马程序员技术交流社区
标题:
用FileReader读取一个文件,出现丢失就是隔一个读一个
[打印本页]
作者:
xiaoxinxin003
时间:
2015-7-16 11:56
标题:
用FileReader读取一个文件,出现丢失就是隔一个读一个
import java.io.*;
import java.util.*;
public class Test7 {
private static Integer value;
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("e:\\a.txt");
fw = new FileWriter("e:\\b.txt");
TreeMap<Character,Integer> hm = new TreeMap<Character,Integer>();
value = null;
int count = 0;
while((fr.read())!=-1)
{//这里隔一个读一个,
char ch = (char) fr.read();
//System.out.println(ch);
if(" ".equals(ch))
continue;
value = hm.get(ch);
if(value != null)
count = value;
count++;
hm.put(ch, count);
count = 0;
}
System.out.println(hm.size());
StringBuilder sb = new StringBuilder();
Set<Map.Entry<Character, Integer>> entrySet = hm.entrySet();
Iterator<Map.Entry<Character, Integer>>it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<Character, Integer>me = it.next();
Character chs = me.getKey();
Integer counts = me.getValue();
sb.append(chs+" "+counts+"次 ");
}
fw.write(sb.toString()+"\r\n");
fw.flush();
System.out.println(sb.toString()+"\r\n");
} catch (Exception e) {
// TODO: handle exception
}
}
}
复制代码
作者:
xiaoxinxin003
时间:
2015-7-16 12:06
本帖最后由 xiaoxinxin003 于 2015-7-16 12:46 编辑
我觉得就是循环那块出了问题了,我的文件中存的是abcd结果这能读到b和d,FileReader是一次读取一个字符的呀。。。第18行是:
Character ch = (char) fr.read();
作者:
段培峰
时间:
2015-7-16 12:29
感觉读那里就错了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2