我在文件写是这样的: 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,那后面应该怎么补齐。

解决方案 »

  1.   

    java菜鸟··大家帮个忙!谢谢
      

  2.   

    else内为什么还要写,不写不久完了
      

  3.   

    bye(0)是一个字节 中文是一个字符,强制转换下字符编码格式或者在流外面再包装过滤下,比如包个字符流就可以一次读取一个中文字符了
      

  4.   

    这个不是中文的问题,byte(0)这个是后面我按文件格式长度要求把相应的补齐。