Após escrever um arquivo, substituir vírgulas por pontos!

4 respostas
V

Olá!

Programei uma interface de modo que ela liste, da forma que eu quero, uma relação de valores.

O único problema é que o java salva os valores com vírgulas e o programa que vai ler esse arquivo depois só reconhece pontos.
Gostaria de saber como eu faço para que o java, ao final de tudo, substitua cada virgula do arquivo gerado por ponto.

EXEMPLO
ANTES
7,456
44,777E+3
15,4
7,000

DEPOIS
7.456
44.777E+3
15.4
7.000

Grato desde já!

4 Respostas

regis_hideki

Há muitas opções possíveis. Procure por classes como “NumberFormat” ou “DecimalFormat” ou pelos métodos “replace” e “replaceAll” de String. Acho que outra forma é modificar o Locale.

V

Eu cheguei a ler sobre utilizar replace de string mas não queria ter que gerar todas as linhas como string pois o arquivo é bem extenso… teria um exemplo desse Locale aí??? valeu!

V

aqui está uma parte simples do código que resume como ele gera o arquivo... se alguém pudesse me dizer o que escrever depois, ficaria muito grato!

package novasaidadef;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.util.Scanner;

public class NovaSaidaDef { 
    
    @SuppressWarnings("empty-statement")
    public static void main(String[] args) throws IOException { 
        Scanner ler = new Scanner(System.in); 
         try (FileWriter arq = new FileWriter("C:\\TESTE\\text.txt")) 
        {
        PrintWriter gravarArq = new PrintWriter(arq); 
        
        float numum, numdois;
        
        System.out.printf("Informe um numero:\n"); 
        numum = ler.nextFloat(); 
        System.out.printf("Informe outro numero:\n"); 
        numdois = ler.nextFloat(); 
       
        gravarArq.printf("%-8.3f  %-8.3f%n",numum, numdois);  
                   
        } 
            
        System.out.printf("\nInformação de disco(s) foram gravadas em text.txt\".\n"); 
 
}}

o arquivo gerado sai com os dois números com virgula... eu quero que após gerá-lo o java entre e substitua todas as vírgulas por pontos...
Algúem tem alguma ideia? tentei com strings mas aqui não funcionou... VALEU!!!

V

up

Criado 7 de novembro de 2013
Ultima resposta 10 de nov. de 2013
Respostas 4
Participantes 2