我刚了解JAVA ,不清楚怎样将VC++中如下结构保持到文件("C:\\test.a")和怎样从文件("C:\\test.a")读信息到到结构typedef struct _CHNINFO
{
int      nIndex;
int      nSubIndex;
char     data[100];
}CHNINFO;

解决方案 »

  1.   

    InputStream is=new FileInputStream("C:\\1.txt");
            DataInputStream dis=new DataInputStream(is);
            ArrayList al=new ArrayList();
            while(true){        if(dis.available()==0)break;
          
            int nIndex =dis.readInt();  
            int nSubIndex=dis.readInt();
            byte[] b= new byte[100];
            dis.read(b);
            
            CHNINFO chninfo=new CHNINFO();
            chninfo.setNIndex(nIndex);
            chninfo.setNSubIndex(nSubIndex);
            chninfo.setData(b);
            al.add(chninfo);
            }
      

  2.   

    class CHNINFO{
        int nIndex,nSubIndex;
        byte[] data;
        public byte[] getData() {
            return data;
        }
        public void setData(byte[] data) {
            this.data = data;
        }
        public int getNIndex() {
            return nIndex;
        }
        public void setNIndex(int index) {
            nIndex = index;
        }
        public int getNSubIndex() {
            return nSubIndex;
        }
        public void setNSubIndex(int subIndex) {
            nSubIndex = subIndex;
        }
        
    }
      

  3.   

    除了楼上写的用DataInputStream读取文件里的数据库 还可以用ObjectInputStream 不过同时还要用到ObjectOutputStream
      

  4.   

    谢谢
    我的目的想通过JAVA Socket传送一个结构到VC写的Socket服务端
    请问能不能象VC++那样用 CHNINFO ChnInfo;
      send(s,(char *)ChnInfo,sizeof(ChnInfo),WSAEFAULT )?
      

  5.   

    java里面貌似没有结构这一说哇
      

  6.   

    你需要实现CHNINFO的生成字节的方法,然后用java的socket发出去。
    在java中流的操作都是用InputStream,OutputStream;
    没有你的那个操作方法。
    另外生成字节时可能要考虑数据包长度问题,你的数据包没有附带长度信息(估计是定长的),那么送过去的数据的长度应该在生成字节时控制好,否则接收时会出问题。
      

  7.   

    谢谢
    我一直在用VC++写程序,对JAVA刚了解了一些