Ler e gravar arquivo texto em dispositivo movel

Boa Noite…
estou com um pequeno problema eu ate consigo ler meu arquivo texto utilizando o codigo abaixo:

private String readHelpText() { InputStream is = getClass().getResourceAsStream("help.txt"); try { StringBuffer sb = new StringBuffer(); int chr; while ((chr = is.read()) != -1) sb.append((char) chr); return sb.toString(); } catch (Exception e) { System.out.println("Nao foi possivel ler o arquivo"); } return null; }
mas gostaria de modificar o arquivo texto lido ou criar outro arquivo.
E não estou conseguindo.

grato.

Opa, já faz algum tempo mas espero que ajude:

    private void saveFile(String path, String name, String string) {
        try {
            String url = path + name;
//            String string = textBox.getString();
            FileConnection fconn = (FileConnection)Connector.open(url, Connector.READ_WRITE);
            if (!fconn.exists()) {
                fconn.create();
            }
            InputStream is        = fconn.openInputStream();
            InputStreamReader isr = new InputStreamReader(is);            
            char[] c = new char[(int) fconn.fileSize()];
            isr.read(c);

            OutputStream ops = fconn.openOutputStream();
            String novo = String.valueOf(c) + string;
            ops.write( novo.getBytes() );
            
            ops.close();
            is.close();
            isr.close();            
            fconn.close();
        }
        catch (IOException ioe) {
            System.out.println("IOException: "+ioe.getMessage());
        }
        catch (SecurityException se) {
            System.out.println("Exceção de segurança:" + se.getMessage());
        }
    }

obrigado vou testar e depois te falo se deu certo.

utilize a RecordStore … ficou melhor para a minha aplicação

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.microedition.rms.InvalidRecordIDException;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreFullException;
import javax.microedition.rms.RecordStoreNotFoundException;
import javax.microedition.rms.RecordStoreNotOpenException;

public class File{
	
	private RecordStore rs;
	private String nameFile; 
	
	public File(String nameFile){
		this.nameFile = nameFile;
		this.rs = null;
	}
	
	public boolean isNull(){
		return rs==null;
	}
	
	public String getName(){
		return this.nameFile;
	}

	public void newOpen() {
		try {
			rs = RecordStore.openRecordStore(nameFile, true);
		} catch (RecordStoreNotFoundException e) {
			System.out.println("-- (open true) RecordStore inexistente");
		} catch (RecordStoreException e) {
			System.out.println("-- (open true) Outro erro");
		}
	}
	
	public void notNewOpen() {
		try {
			rs = RecordStore.openRecordStore(nameFile, false);
		} catch (RecordStoreNotFoundException e) {
			System.out.println("-- (open true) RecordStore inexistente");
		} catch (RecordStoreException e) {
			System.out.println("-- (open true) Outro erro");
		}
	}
	
	public boolean deleteRecord(){		
		try {
			RecordStore.deleteRecordStore(nameFile);
			return true;
		} catch (RecordStoreNotFoundException e) {
			System.out.println("-- (deleteRecord) RecordStore inexistente");
			return false;
		} catch (RecordStoreException e) {
			System.out.println("-- (deleteRecord) Outro erro");
			return false;
		}
	}
	
	public boolean isSave() {
		String [] listRecord = RecordStore.listRecordStores();
		try{
			for(int i=0; i<listRecord.length; i++){
				if(listRecord[i].equals(nameFile))
					return true;
			}
		} catch(Exception e){ return false;}
		return false;
	}

	public void close() {
		try {
			rs.closeRecordStore();
		} catch (RecordStoreNotOpenException e) {
			System.out.println("-- (close) O Record Store esta fechado");
		} catch (RecordStoreException e) {
			System.out.println("-- (close) Outro erro");
		}
	}

	public void add(String nome) {
		try {
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			DataOutputStream dos = new DataOutputStream(baos);
			dos.writeUTF(nome);
			dos.flush();
			byte[] data = baos.toByteArray();
			int id = rs.addRecord(data, 0, data.length);
			baos.close();
			dos.close();
		} catch (IOException e) {
			System.out.println("-- (add) Erro de IO");
		} catch (RecordStoreFullException e) {
			System.out.println("-- (add) Não existe espaço disponível");
		} catch (RecordStoreNotOpenException e) {
			System.out.println("-- (add) O Record Store esta fechado");
		} catch (RecordStoreException e) {
			System.out.println("-- (add) Outro erro");
		}
	}
	
	public int size(){
		int toReturn = 0;
		try {
			toReturn = rs.getNumRecords();
		} catch (RecordStoreNotOpenException e) {
			System.out.println("-- (size) O Record Store esta fechado");
			toReturn=  -1;
		} catch (RecordStoreException e) {
			System.out.println("-- (size) Outro erro");
		}
		return toReturn;
	}
	
	public String[] getListRecord(){
		return rs.listRecordStores();
	}

	public String getRecord(int id) {
		String toReturn = "";
		try {
			int recordSize = rs.getRecordSize(id);
			byte[] data = new byte[recordSize];
			ByteArrayInputStream bais = new ByteArrayInputStream(data);
			DataInputStream dis = new DataInputStream(bais);
			int numBytes = rs.getRecord(id, data, 0);
			toReturn = dis.readUTF();
			bais.reset();
			bais.close();
			dis.close();
		} catch (IOException e) {
			System.out.println("-- (getRecord) Erro de IO");
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("-- (getRecord) Registro muito grande");
		} catch (InvalidRecordIDException e) {
			System.out.println("-- (getRecord) ID inexistente");
		} catch (RecordStoreNotOpenException e) {
			System.out.println("-- (getRecord) O Record Store esta fechado");
		} catch (RecordStoreException e) {
			System.out.println("-- (getRecord) Outro erro");
		}
		return toReturn;
	}

	public void update(int id, String str) {
		try {
			String auxstr = this.getRecord(id);
			ByteArrayOutputStream auxBaos = new ByteArrayOutputStream();
			DataOutputStream auxDos = new DataOutputStream(auxBaos);
			auxDos.writeUTF(auxstr);
			auxDos.flush();
			byte[] auxData = new byte[auxBaos.toByteArray().length];
			rs.setRecord(id, auxData, 0, auxData.length);				
			
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			DataOutputStream dos = new DataOutputStream(baos);
			dos.writeUTF(str);
			dos.flush();
			byte[] data = baos.toByteArray();
			rs.setRecord(id, data, 0, data.length);
		} catch (IOException e) {
			System.out.println("-- (update) Erro de IO");
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("-- (update) Registro muito grande");
		} catch (InvalidRecordIDException e) {
			System.out.println("-- (update) ID inexistente");
		} catch (RecordStoreNotOpenException e) {
			System.out.println("-- (update) O Record Store esta fechado");
		} catch (RecordStoreException e) {
			System.out.println("-- (update) Outro erro");
		}
	}
}

valeu pela dica.

com record store eu ja tinha feito, queria ver se conseguia fazer algo a mais com o arquivo texto alem de le-lo.

mas valeu pela dica obrigado.