Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Открытие файла для чтения.


Автор: Wi34rD 9.9.2005, 08:22
Объясните пожалуйсто идиоту, как вывести содержимое текстового файла на экран мобильника.

Автор: Dancer 9.9.2005, 10:02
в телефоне должна быть поддержка JSR-75
если этого нету, то в принципе если знаешь какое-то хитрое API от производителя, то можно и его использовать для обращения к файловой системе, я где-то уже давал код который читает что-то из файла.
делается всё очень просто smile (JSR-75)
Код

String fileName = "file://"; // тут нужно в зависимости от того как у тебя организована 
                                          //файловая система, написать путь до файла file:// - это обязательно!!!!
FileConnection fcon;
InputStream is;
Form txtForm = new Form("Text From File");

try {
  fcon = Connector.open(fileName,Connector.READ);
  try {
    is = fcon.openInputStream();
  } catch(Exception e) {
    System.out.println("Can't openInputStream for  file \""+fileName+"\"");
    is = null;
  }
} catch(Exception e) {
  System.out.println("Can't open file \""+fileName+"\"");
  fcon = null;
}

StringBuffer sb = new StringBuffer("");
if(is != null) {
  int ch;
  while((ch=is.read())!=-1) sb.append((char)ch);
  txtForm.append(sb.toString());
  Display.getDisplay().setCurrent(txtForm);
}



Если же тебе нужен файлик, кторый ты присобачил в JAR, то делаешь следующее (почти рабочий пример, это часть кода):
Код

public MyMIDlet extends MIDLet {
  Form textForm;
  String fileName = "/file.txt";
  public void startApp() {
    textForm = new Form("TextFrom File");
    InputStream is = getResourceAsStream(fileName);
     int ch;
     while ((ch = is.read()) != -1) {
        textForm.append((char)ch);
     }
     Display.getDisplay().setCurrent(textForm);
  }
}

Автор: javastic 9.9.2005, 10:28
Это ты можешь сделать с помощью _необязательных_ пакетов если же конечно производитель твоего телефона поддерживает их. Найти описание их спецификаций можешь по ссылке:

http://www.jcp.org/en/jsr/tech?listBy=1&listByType=platform

всего их на данный момент 75 штук.

То что тебе надо это:
File Connection Optional Package (FCOP) JSR 75[b]

Чтобы проверить поддерживает ли твой или иной телефон этот пакет используй этот код:
Код

String v = System.getProperty("microedition.io.file.FileConnection.version" );
f( v != null ){
    // FCOP available
} else {
    // FCOP not available
}


Чтение файла можно осуществить например так:
Код

...
import javax.microedition.io.*;
    
String url = "file:///data.txt";
InputConnection conn = null;
int mode = Connector.READ_ONLY;
  
try {
    conn =(InputConnection) Connector.open( url, mode );
}
catch( IOException ioe ){
    // no file
}
...


В общем скачай 75-у спецификацию и эксперементируй.
На экран выводи текст например c помощью компонента StringItem размещенного на форму или
просто в Alert.

Автор: Wi34rD 11.9.2005, 07:24
Вот спасибо удружил! smile

Кстати я думал, что не смог создать эту тему. lol

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)