[RESOLVIDO]Alterar arquivo txt

7 respostas
renatomattos2912

Boa tarde,

Tenho um arquivo txt onde os valores são separados por numeros de caracteres, por exemplo, do caracter 1 ao 6 é o nome, do 7 ao 9 é codigo e etc. O q eu quero fazer é um codigo em java que insira virgula entre esses valores para que eu possa importar para o banco de dados como csv posteriormente, mas não faço ideia de como, alguem poderia me ajudar?

7 Respostas

diogozero

Sabe ler o arquivo? Caso saiba, use subtring para recuperar os valores dentro desses intervalos e depois concatene em uma nova String, dessa vez com as virgulas.
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#substring(int,%20int)

renatomattos2912

diogozero:
Sabe ler o arquivo? Caso saiba, use subtring para recuperar os valores dentro desses intervalos e depois concatene em uma nova String, dessa vez com as virgulas.
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#substring(int,%20int)

Sim, ja consigo ler o arquivo e gravar nele, mas não consigo dizer exatamente onde escrever, eu queria algo do tipo “conte 5 caracteres e escreva a virgula”, a classe q estou usando pra ler e gravar ate o momento é esta:

public class ImportTXT {
	public static void main(String[]args) throws IOException {
		OutputStream bytes = new FileOutputStream("e:/teste.txt", true);  
        OutputStreamWriter chars = new OutputStreamWriter(bytes);  
        BufferedWriter strings = new BufferedWriter(chars);  
  
        strings.write(",");  
  
        strings.close(); 
	}
}

sera q da pra fazer isso q eu quero com a substring?

diogozero

O Substring recupera uma nova String dentro de um intervalo, por exemplo do 1º ao 6º caractere. Por ai você pode fazer uma nova String com o que você vai recuperando ele, dessa vez atribuindo a “,” entre os valores.

renatomattos2912

entendi, vou tentar aqui, obrigado

ramilani12

Olá
Tem um padrão nesse seu arquivo?
Por exemplo do caracter do 1 ao 6 é somente numeros e do 7 ao 12 é letras se sim seria interessante usar expressoes regulares ou usar a classe String Tokenizer a dor de cabeça é menor…

renatomattos2912

ramilani12:
Olá
Tem um padrão nesse seu arquivo?
Por exemplo do caracter do 1 ao 6 é somente numeros e do 7 ao 12 é letras se sim seria interessante usar expressoes regulares ou usar a classe String Tokenizer a dor de cabeça é menor…

o arquivo não tem um padrão, as unicas indicações que tenho são das limitações dos caracteres, por exemplo do 1 ao 5 é codigo e do 6 ao 8 é outro codigo, nesse arquivo exclusivamente tenho numeros e textos, os espaços tmb são contados como caracteres e sei que cada linha tem 360 caracteres (contando espaçoes tmb) o mais facil seria sair contando os caracteres e inserindo virgula após as limitações q eu informar e a partir disso gerar outro txt com as alterações gravadas, mas ta dificil, estou tentando com substring como o amigo acima informou

renatomattos2912

opa galera, agradeço a ajuda de todos, o codigo com a solução esta a seguir:

public class ImportTXT {
	public static void main(String[] args) throws IOException {
		InputStream is = new FileInputStream("e:/teste.txt");
		OutputStream os = new FileOutputStream("e:/saida.txt");
		OutputStreamWriter osw = new OutputStreamWriter(os);
		BufferedWriter bw = new BufferedWriter(osw);

		Scanner entrada = new Scanner(is);
		while (entrada.hasNextLine()) {
			String linha = entrada.nextLine();
			
			String newlinha = linha.substring(1, 6);
			bw.write(newlinha + ",");

			
			newlinha = linha.substring(6, 15);
			bw.write(newlinha + ",");

			
			newlinha = linha.substring(15, 20);
			bw.write(newlinha + ",");
			
			bw.newLine();

		}

		bw.close();
		entrada.close();
	}

}
Criado 11 de dezembro de 2012
Ultima resposta 12 de dez. de 2012
Respostas 7
Participantes 3