こんにちは

StringBuffer sb = new StringBuffer();
char[] recvR = new char[64];

try {
FileReader fr = new FileReader("D:\\java\\ + str + ".txt");
while(-1 != fr.read(recvR)) {
sb.append(recvR);
}
}catch(Exception e) {
//System.out.println(e.getMessage());
}


こうやって、ファイルからreadすると、
最後のファイルデータを読み込む際のデータは64k以下となって、recvRに受信されるデータは中途半端になりますけども、
そのあまった部分に前受信したデータが入って、今受信したデータの後に、前に受信したデータがのこったrecvRになってしまいます。
このバグを解決する方法を教えてください。