脑子糊涂了,大家帮忙看一个简单的程序,谢谢。 应该用FileReader/FileWriter. Stream方式读出的是二进制流。另外在第一个try-cach内部代码结束后应该关闭fs,ds.否则可能造成数据还没来得及写入文件,第二个try-catch就已经开始读了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关闭fs,ds了也不行。stream读出的是二进制数,可是我用String(b)来转换了怎么不能转换为字符串呢?写SOCKET程序也是用的DataInput,DataOutput 中文的编码问题,照着下面该就可以了package com.test2;import java.io.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author not attributable * @version 1.0 */public class Bean5 { public Bean5() { } public static void main(String args[]) { try{ String hello="你好"; FileOutputStream fs=new FileOutputStream("haha"); DataOutputStream ds=new DataOutputStream(fs); ds.writeUTF(hello); ds.close(); fs.close(); } catch(Exception e){ e.printStackTrace(); } try{ FileInputStream fs2=new FileInputStream("haha"); DataInputStream ds2=new DataInputStream(fs2); String hello = ds2.readUTF(); System.out.println(hello); }catch(Exception e){ e.printStackTrace(); } }} ds.writeBytes(String s)方法会将每一个字符的高8位丢弃。如果你的字符串是半角的(比如数字),就没有问题。 我也这么写过了,是可以的为什么那样不行了?writeBytes()应该是写入"你好"在内存中的二进制数据到文件中吧,read()是读出文件中的二进制数据,然后我再用默认的编码把二进制转换成字符,怎么不对呢?这一系列的转换应该都是用操作系统默认的编码方式啊??请高手指点,谢谢! Myeclipse8.5,怎么用UML导出类图? private static final对象也被回收了? qq注册界面 职位信息 关于垃圾回收(内存管理)的一点疑问 FOR循环问题 java基础问题,求教. JAVA有没有反三角函数,譬如arcsin(),arccos(),arctg() 这学期,我们有数据库的课程设计,写一个软件,用Java来作容易吗? 大家给我个建议,看我该不该离开这家单位? 一个很简单的问题,怎样copy一个字符串? 在java中如何实现结构体的功能啊?
stream读出的是二进制数,可是我用String(b)来转换了
怎么不能转换为字符串呢?
写SOCKET程序也是用的DataInput,DataOutput
import java.io.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class Bean5 { public Bean5() {
} public static void main(String args[])
{
try{
String hello="你好";
FileOutputStream fs=new FileOutputStream("haha");
DataOutputStream ds=new DataOutputStream(fs);
ds.writeUTF(hello);
ds.close();
fs.close();
}
catch(Exception e){
e.printStackTrace();
}
try{
FileInputStream fs2=new FileInputStream("haha");
DataInputStream ds2=new DataInputStream(fs2); String hello = ds2.readUTF();
System.out.println(hello);
}catch(Exception e){
e.printStackTrace();
} }
}
为什么那样不行了?
writeBytes()应该是写入"你好"在内存中的二进制数据到文件中吧,
read()是读出文件中的二进制数据,
然后我再用默认的编码把二进制转换成字符,怎么不对呢?
这一系列的转换应该都是用操作系统默认的编码方式啊??
请高手指点,谢谢!