davidhc
#1
Fala galera 
Vamos supor que tenha um arquivo .properties de 100 linhas, tem como eu ler uma linha dele e alterar o conteúdo dela?
Eu pensei em ler e apagar e depois escrever a nova string…tem isso?
Para ler a proprieda, eu estou usando:
StringTokenizer dvd2 = new StringTokenizer(dvd.getProperty("teste"), ",");
while(dvd2 .hasMoreTokens()) {
LIST_TEST.add(dvd2 .nextToken().trim());
}
Dê uma olhada nas classes:
RandomAccessFile e FileChannel.
Elas permitem que você altere um arquivo.
Agora no caso do .properties, não é mais fácil carrega-lo com a classe Properties, alterar a propriedade e depois salva-lo novamente?
davidhc
#3
[quote=ViniGodoy]Dê uma olhada nas classes:
RandomAccessFile e FileChannel.
Elas permitem que você altere um arquivo.
Agora no caso do .properties, não é mais fácil carrega-lo com a classe Properties, alterar a propriedade e depois salva-lo novamente?[/quote]
Hm, pode ser…não sabia da existencia dessa classe … vou procurar algo a respeito!
Eu estava chegando perto…eu só não conseguia acessar a linha e alterar rsrs
Com a classe Properties, eu consigo aletrar os valores do arquivo?
Por exemplo, está:
procurar=1
Eu posso alterar o 1 pra 0?
Pode! Aliás, acho que é o jeito mais fácil. Basta usar o método setProperty:
Deve ficar algo mais ou menos assim (talvez você deva tratar algumas exceções e fechar os streams, mas a idéia básica é essa):
File destino = new File("seuarquivo.properties");
Property properties = new Property();
properties.load(new FileInputStream(destino));
properties.setProperty("procurar", "0");
properties.save(new FileOutputStream(destino), "");
Mais informações no Javadoc da classe:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#setProperty(java.lang.String,%20java.lang.String)
davidhc
#5
public class Arquivo {
public static void main(String[] args) {
String valor = "joao";
File file = new File("david.properties");
Properties prop = new Properties();
FileInputStream in = null;
file.canWrite();
try {
in = new FileInputStream(file);
prop.load(in);
in.close();
System.out.println("ok");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
prop.setProperty("name", valor);
System.out.println(prop.getProperty("name"));
}
}
Está feito … caso alguém mais precise…o código acima está funcionando!
[]'s