把boolean int转成string写入到文本文件userMessage.txt里面.read_char_array()读

解决方案 »

  1.   

    唉,你如果想写成能看的,那就是字符流!
    不要用DataInputStream,DataOutputStream.这是写二进制格式,你当然看不明白了。不过内容确是对的。
    直接用FileWriter和FileReader,把所有内容都当成字符记录,取出来的时候在做转换。
      

  2.   

    其实很简单,你只要在读取的时候使用和写的顺序,写时用writeInt,那么读的时候用readInt就没有问题了,但是前后的顺序一定要一致,不然会出现错误的。
      

  3.   

    请运行以下代码:
    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'字符,不然会阻塞)。