文件在写入后读取为乱码问题

xin_zzq1 2011-06-03 01:39:51
我在文件写是这样的:

public void writeString(String data,int length) throws IOException
{
assert(m_file!=null);
byte[] tpby = new byte[length];
System.arraycopy(data.getBytes(), 0, tpby, 0, data.length());
for(int i = 0; i < length; i ++)
{
if(i < data.length())
m_file.write(tpby[i]);
else
{
byte[] buf = new byte[length-data.length()];
for (int i = 0; i < (ength-data.length()); i++)
array[i] = (byte) 0;
m_file.write(buf[i- data.length()]);
}

}
}

读取出来前面字符是正确的,后面的写入到文件的bye(0)读出来就是乱码。
如果我后面需要补齐不能写入0,那后面应该怎么补齐。
...全文
72 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaosijun2004 2011-06-03
  • 打赏
  • 举报
回复
补0x20 空格

看你 需要补什么 要补0字符就补0x30

xin_zzq1 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhangsong1st 的回复:]
bye(0)是一个字节 中文是一个字符,强制转换下字符编码格式或者在流外面再包装过滤下,比如包个字符流就可以一次读取一个中文字符了
[/Quote]
这个不是中文的问题,byte(0)这个是后面我按文件格式长度要求把相应的补齐。
xin_zzq1 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 woaini314 的回复:]
else内为什么还要写,不写不久完了
[/Quote]
项目按文件格式要求的,如果不写的话,后面按长度读取也就出问题 了
借我那把枪吧 2011-06-03
  • 打赏
  • 举报
回复
bye(0)是一个字节 中文是一个字符,强制转换下字符编码格式或者在流外面再包装过滤下,比如包个字符流就可以一次读取一个中文字符了
caibird1024 2011-06-03
  • 打赏
  • 举报
回复
else内为什么还要写,不写不久完了
xin_zzq1 2011-06-03
  • 打赏
  • 举报
回复
java菜鸟··大家帮个忙!谢谢

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧