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.
Norxs
Julho 31, 2008, 2:53pm
#4
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.