Pessoal queria fazer um programa que abre um arquivo .txt e retira todos os espaços em branco do conteudo deste arquivo…alguem poderia me dar uma luz de como começo isso ? pq nao faço ideia^^
vlw ae
- Use um scanner para abrir o seu arquivo.
- Enquanto tiver linhas disponíveis, use o comando replace para trocar espaços por ‘’;
- Use um FileWriter para escrever novamente o arquivo.
Dica: Gere um segundo arquivo com o resultado. Não é uma boa política apagar o arquivo anterior.
eu tentei uma vez aki vou postar o codigo :
FileInputStream stream = new FileInputStream("c:/dccs.txt");
InputStreamReader streamReader = new InputStreamReader(stream);
BufferedReader reader = new BufferedReader(streamReader);
FileWriter fileWriter = new FileWriter("c:/dccsSemEspaco.txt");
PrintWriter writer = new PrintWriter(fileWriter);
String line = null;
while((line=reader.readLine())!=null) {
writer.println(line.replace(" ", ""));
}
writer.close();
fileWriter.close();
reader.close();
streamReader.close();
stream.close();
porem nao funcionou para todos os espaco, ele fez algo porem nao retirou todos , pq o arquivo esta menor
poxa axo que descobri o porque , na verdade existem tambem tabulaçoes que dever ser removidas , vou tentar denovo com o \t
ja volto :lol:
ae muito legal deu tudo certo \o_
vou postar o que fiz e para que usei ^^
do arquivo
eu limpei os espaçoes e tabulaçoes e tranformei nisto
legal ^^ agora so inserir no banco^^
o código é o seguinte:
FileInputStream stream = new FileInputStream("c:/dccs.txt");
InputStreamReader streamReader = new InputStreamReader(stream);
BufferedReader reader = new BufferedReader(streamReader);
FileWriter fileWriter = new FileWriter("c:/dccsSemEspaco.txt");
PrintWriter writer = new PrintWriter(fileWriter);
String line = null;
while((line=reader.readLine())!=null) {
line = line.replace(" ", "");
line = line.replace("\t", "");
writer.println(line);
}
writer.close();
fileWriter.close();
reader.close();
streamReader.close();
stream.close();
Tente assim:
Scanner scan = new Scanner(new File("c:/dccs.txt"));
PrintWriter writer = new PrintWriter(new File("c:/dccsSemEspaco.txt"));
while (scan.hasNextLine()) {
writer.println(scan.nextLine().replaceAll("\s", ""));
}
writer.close();
scan.close();
- O próprio FileWriter se incomoda em criar os BufferedStreamWriters.
- O scanner deixa o programa mais claro. Aquele seu while está bem esquisitinho;
- Você só precisa dar close no writer mais externo. Ele se encarrega de fechar os internos;
- O comando replaceAll aceita a expressão regular \s, que representa qualquer caracter branco.
- Se precisar, você também pode dar dois replaces seguidos:
line = line.replace(" “, “”).replace(”\t", “”); - Depois, ajuste para tratar exceções e deixar os close num finally. Como no código abaixo:
try {
Scanner scan = new Scanner(new File("c:/dccs.txt"));
PrintWriter writer = new PrintWriter(new File("c:/dccsSemEspaco.txt"));
try {
while (scan.hasNextLine()) {
writer.println(scan.nextLine().replaceAll("\s", ""));
}
} finally {
if (writer != null) {
writer.close();
}
if (scan != null) {
scan.close();
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
[quote=Vitao1718]poxa axo que descobri o porque , na verdade existem tambem tabulaçoes que dever ser removidas , vou tentar denovo com o \t
ja volto :lol: [/quote]
Boa! Tente igualmente com outros caracteres de controle!!!