Как я могу прочитать остальную часть файла после первых 64 байтов? - PullRequest
1 голос
/ 01 апреля 2011

Я должен использовать файл для работы. Первые 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 ]

1 голос
/ 01 апреля 2011

Прочитайте весь файл, как вы делаете.
Затем используйте это для разделения данных, прочитанных из текста:

// 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());
0 голосов
/ 01 апреля 2011

использование:

DataInputStream.skipBytes()
...