Ler, apagar e escrever uma linha

Fala galera :smiley:

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?

[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)

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