关于用DataInputStream,DataOutputStream的read(),write()方法的问题(欢迎研究): 把boolean int转成string写入到文本文件userMessage.txt里面.read_char_array()读 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 唉,你如果想写成能看的,那就是字符流!不要用DataInputStream,DataOutputStream.这是写二进制格式,你当然看不明白了。不过内容确是对的。直接用FileWriter和FileReader,把所有内容都当成字符记录,取出来的时候在做转换。 其实很简单,你只要在读取的时候使用和写的顺序,写时用writeInt,那么读的时候用readInt就没有问题了,但是前后的顺序一定要一致,不然会出现错误的。 请运行以下代码:public class DataIOTest { public static void main(String[] args) throws Exception{ PipedInputStream pis=new PipedInputStream(); PipedOutputStream pos=new PipedOutputStream(pis); DataOutputStream dos=new DataOutputStream(pos); DataInputStream dis=new DataInputStream(pis); dos.writeBoolean(true); //dos.writeChar('\n'); dos.writeInt(100); //dos.writeChar('\n'); dos.writeChars("hello, i am a string!"); //dos.writeChar('\n'); dos.flush(); dos.close(); ///////// System.out.println(dis.readBoolean()); System.out.println(dis.readInt()); StringBuffer sb = new StringBuffer(); char a; try{ while ( (a = dis.readChar()) != -1) { sb.append(a); } catch(IOException e){ } System.out.println(sb); //////////// /* System.out.println(dis.readLine()); System.out.println(dis.readLine()); System.out.println(dis.readLine()); */ }}将所有的读取方法改成readLine就会出现不能辨认的字符(在此之前一定要写入'\n'字符,不然会阻塞)。 求教java中的drawString()方法 请大家指教.急等 问一个简单的函数问题 多线程环境下对数据库进行添加,删除,修改操作会早成数据库死锁吗? 请问java的跨平台是如何实现的?对于windows特有的东西,在其他操作系统下它如何跨平台的? 请教这段代码的作用。高分。在线等 一个简单的画图程序 请问JBuilder7怎么编译我写好的java文件,用jb打开编译的选项为灰色? 简单问题大家快来!在线等候! 高分请教:applet JBuilder书下载给个连结 怎样将XML或者HTML转成EXCEL文件??
不要用DataInputStream,DataOutputStream.这是写二进制格式,你当然看不明白了。不过内容确是对的。
直接用FileWriter和FileReader,把所有内容都当成字符记录,取出来的时候在做转换。
public class DataIOTest { public static void main(String[] args) throws Exception{
PipedInputStream pis=new PipedInputStream();
PipedOutputStream pos=new PipedOutputStream(pis);
DataOutputStream dos=new DataOutputStream(pos);
DataInputStream dis=new DataInputStream(pis);
dos.writeBoolean(true);
//dos.writeChar('\n');
dos.writeInt(100);
//dos.writeChar('\n');
dos.writeChars("hello, i am a string!");
//dos.writeChar('\n');
dos.flush();
dos.close();
/////////
System.out.println(dis.readBoolean());
System.out.println(dis.readInt());
StringBuffer sb = new StringBuffer();
char a;
try{
while ( (a = dis.readChar()) != -1) {
sb.append(a);
}
catch(IOException e){
}
System.out.println(sb);
////////////
/*
System.out.println(dis.readLine());
System.out.println(dis.readLine());
System.out.println(dis.readLine());
*/
}
}将所有的读取方法改成readLine就会出现不能辨认的字符(在此之前一定要写入'\n'字符,不然会阻塞)。