天天看点

j2me读取本地文件的方法

  J2ME读取本地文件的方法 public byte[] readFile(String filepath) {

  byte data[] = null;

  try {

   FileConnection fc = (FileConnection) Connector.open(filepath);

   DataInputStream dis = fc.openDataInputStream();    

   int ch;// 每次读出的数据

   int index = 0;// 读取的数据的总索引

   int len = 1024;// 放数据的空间不够时,每次扩充空间的大小为1024字节

   byte buf[];// 暂时存放从data[]拷贝出来的数据

   data = new byte[len];// 先初步设定一个1k的内存空间

   while ((ch = dis.read()) != -1) {

    data[index] = (byte) ch;

    index++;

    if (index >= len) {

     len += 1024;

     buf = new byte[len];

     System.arraycopy(data, 0, buf, 0, index);

     data = null;

     data = buf;

    }

   }

   // 此时data[]的长度可能要比实际数据多,最后的一些字节可能是一些无效的数据,去掉无效数据

   if ((index % 1024) == 0) {

    buf = new byte[index];// index的值是数据的实际大小

    System.arraycopy(data, 0, buf, 0, index);

    data = null;

    data = buf;

   }

   if (dis != null) {

    dis.close();

    dis = null;

   }

   if (fc != null) {

    fc.close();

    fc = null;

   }

  } catch (IOException e) {

   e.printStackTrace();

  }   return data;

 }