我利用DataInputStream 读取字节到一个数组里(假设这个数组大小为byte[] a=new byte[100]), 但是所读取的字节数组只有50个, 那么字节数组a[] 就有50个数组是空的. 问题: 我怎样设定初始化字节数组的大小刚好是所读取的字节数组的大小呢? (不要让内存浪费.)

解决方案 »

  1.   

    import java.net.*;
    import java.io.*;public class SimpleClient
    {
    public static void main(String[] args) throws IOException
    {
    int c;
    Socket s1;
    InputStream s1In;
    DataInputStream dis;
    DecryptMessage dm; byte[] ctext=new byte[100]; try
    {
    s1=new Socket("127.0.0.1",5432); s1In=s1.getInputStream();
    dis=new DataInputStream(s1In); dis.read(ctext);
    String st=new String(ctext);

    System.out.println(st); s1In.close();
    }
    catch (Exception e){e.printStackTrace();}
    }
    };
      

  2.   

    ctext = new byte[dis.available()];
      

  3.   

    谢谢! 加分. 有msn吗? 交个朋友吧.