通过HTTP方式从服务器获取一个unicode的文件,如何保存为unicode文件呢?问题在于从 read 返回的 int 数据,怎么保存?强制转换为 char 会令部分字节变成 0x3f 原因是"Unicode-->Byte,  如果目标代码集不存在对应的代码,则得到的结果是0x3f."BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((s = in.read()) != -1)
{
      s1.append((char)s);
}

解决方案 »

  1.   

    写成Unicode文件没有问题的。DataInputStream dis=new DataInputStream(conn.getInputStream());//得到输入流
    File file2=new File("F:/workspace2/MobileTicket/src/wel.txt");//声明目标文件
    FileOutputStream fos=new FileOutputStream(file2);
    DataOutputStream dos=new DataOutputStream(fos);//得到目标文件的输出流
    while((data=dis.read())!=-1){
         dos.write(data);
    }这样就可以看到file2的内容就是你需要的内容。其实不论文件是什么文件,所有的文件的基本单元都是字节。上面的这个方法使用的就是以字节单位写入到文件的。不论网络上面传输过来的是什么格式的文件都适用。我使用这个程序传输的就是jpg图片。