如何在前64个字节后读取文件的其余部分?

时间:2011-04-01 15:53:50

标签: file-io java-me

我必须使用文件进行工作。前64个字节必须是标题。所以我必须先读取64个字节,然后读取到文件结尾。如何使用J2ME读取和写入文件?

完整阅读文件是:

FileConnection fconn= (FileConnection) Connector.open(path+fName,Connector.READ);
InputStream is=fconn.openInputStream(); 
DataInputStream dis = new DataInputStream(is);
int ch;
String str = new String();
while ( (ch = dis.read()) != -1) 
{
       str+=((char)ch);
}
dis.close();
is.close();

完全写一个文件是:

FileConnection fconn= (FileConnection)Connector.open(path+fName,Connector.READ_WRITE);
if(!fconn.exists()){
      items.alert=new Alert(" ","Select The Directory",null,AlertType.INFO);
      switchDisplayable(items.alert,items.getList());
      fconn.create(); 
}
os = fconn.openDataOutputStream();
fconn.truncate(0);
os.write(text.getBytes());
os.close(); 
fconn.close();

2 个答案:

答案 0 :(得分:1)

阅读整个文件,就像你正在做的那样 然后使用它来分割从文本中读取的数据:

// Assuming `str` contains the data read from file
String header=str.substring(0,64);
String the_rest_of_file=str.substring(64);

如果你想在文件中更改某些内容,而不是在标题中,那么在编写时你不必跳过 64字节。只需编写相同的标题然后修改数据:

// Change `the_rest_of_file` somehow
// ...
os.write(header.getBytes());
os.write(the_rest_of_file.getBytes());

答案 1 :(得分:0)

使用:

DataInputStream.skipBytes()