PROBLEMA ME AJUDE esta retornando ate os espaços do texto no arquivo txt

7 respostas
gutorocher
o problema esta com o blema e que 
o mesmo esta refornando a quantidade de caracter 
ate com os espaços!!!

Peço ajuda al pessoal....
desde ja agradeço a todos.....



import java.awt.HeadlessException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;

/**
* Programa que solicite ao usuário
* um nome de arquivo e imprima o número
* de caracteres,
* palavras e linhas desse arquivo.
* Utilize arquivos texto.
*
*/

public class ImprimeCharacter {

public static void main(String[] args) throws HeadlessException,
IOException {

/**
* aqui faz em que o usuario dizer
* onde vai ser criado um diretorio;
*/

File f = new File(JOptionPane
.showInputDialog(null,"informe o local que deseja criar diretorio",
"modelo c:/trabalho",JOptionPane.QUESTION_MESSAGE));
System.out.println("criando diretorio");


/**
* aqui cria o diretorio;
*/

f.mkdir();

System.out.println("diretorio criado");
System.out.println("criando arquivo");

/**
* aqui o usuario diz o nome do usuario e
* sua respectiva extensão;
*/

File arquivoNovo = new File(f, JOptionPane
.showInputDialog(null,"informe nome arquivo"," extensão .doc, 
.txt -- > trabolho.txt",
JOptionPane.QUESTION_MESSAGE));


/**
* aqui cria o file em que o usuario solicitou anteriormente
* e caso naum consiga criar ele gera uma excessão;
*/

try {
arquivoNovo.createNewFile();

} catch (IOException e) {
JOptionPane.showMessageDialog(null,
"ocorreu um erro ao tentar criar o arquivo" + arquivoNovo);
}

System.out.println("arquivo criado com sucesso!!!");

try {

FileWriter escreve = new FileWriter(arquivoNovo, true);

escreve.write(JOptionPane
.showInputDialog("informe o texto a ser digitado"));

escreve.flush();//força gravar uma informação no momento solicitado;
escreve.close();

} catch (IOException e) {
JOptionPane.showMessageDialog(null, "erro ao escrever arquivo !");
}

int next = 0;
int contador = 0;

try {
FileReader file = new FileReader(arquivoNovo);

while (next >= 0) {

next = file.read();
if (next == -1)
continue;

char c = (char) next;
contador++;
}

JOptionPane.showMessageDialog(null,
"numero de charanteres no documentnto"
+ "\n que é igual a " + contador);

} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "não encontrado");

} catch (IOException e) {
JOptionPane.showMessageDialog(null, "erro ao ler arquivo");
}
}
}

7 Respostas

andreiribas

ué… testa pra espaços em branco, \n, \t, etc…
e outra… refatore essa classe por favor… fazer um super big método main não tem sentido…

gutorocher

isso ainda naum funciona naum kra…

G

Cara, não entendi nada do que você escreveu, mas se o que você perguntou foi como desconsiderar os caracteres de espaço adicione a validação:

while (next >= 0) {

				next = file.read();
				if (next == -1)
					continue;

				char c = (char) next;
				// Só vai incrementar o contador quando o char não igual a espaço
				if (c != ' ')
					contador++;
			}
LPJava

gutorocher:
o problema esta com o blema e que o mesmo esta refornando a quantidade de caracter ate com os espaços!!!

Peço ajuda al pessoal…
desde ja agradeço a todos…

import java.awt.HeadlessException;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.JOptionPane;

/**

  • Programa que solicite ao usuário
  • um nome de arquivo e imprima o número
  • de caracteres,
  • palavras e linhas desse arquivo.
  • Utilize arquivos texto.

*/

public class ImprimeCharacter {

public static void main(String[] args) throws HeadlessException,
IOException {

/**

  • aqui faz em que o usuario dizer
  • onde vai ser criado um diretorio;
    */
File f = new File(JOptionPane

.showInputDialog(null,informe o local que deseja criar diretorio,modelo c:/trabalho,JOptionPane.QUESTION_MESSAGE));

System.out.println(criando diretorio);

/**

  • aqui cria o diretorio;
    */

f.mkdir();

System.out.println(“diretorio criado”);
System.out.println(“criando arquivo”);

/**

  • aqui o usuario diz o nome do usuario e
  • sua respectiva extensão;
    */

File arquivoNovo = new File(f, JOptionPane
.showInputDialog(null,“informe nome arquivo”," extensão .doc, .txt – > trabolho.txt",JOptionPane.QUESTION_MESSAGE)
);

/**

  • aqui cria o file em que o usuario solicitou anteriormente
  • e caso naum consiga criar ele gera uma excessão;
    */

try {
arquivoNovo.createNewFile();

} catch (IOException e) {

JOptionPane.showMessageDialog(null,

ocorreu um erro ao tentar criar o arquivo + arquivoNovo);

}

System.out.println(“arquivo criado com sucesso!!!”);

try {

FileWriter escreve = new FileWriter(arquivoNovo, true);

escreve.write(JOptionPane
.showInputDialog(“informe o texto a ser digitado”)
);

escreve.flush();//força gravar uma informação no momento solicitado;
escreve.close();

} catch (IOException e) {

JOptionPane.showMessageDialog(null, erro ao escrever arquivo !);

}

int next = 0;
int contador = 0;

try {
FileReader file = new FileReader(arquivoNovo);

while (next >= 0) {

next = file.read();

if (next == -1)

continue;
char c = (char) next;

contador++;

}

JOptionPane.showMessageDialog(null,
“numero de charanteres no documentnto”

  • "\n que é igual a " + contador);

} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, “não encontrado”);

} catch (IOException e) {

JOptionPane.showMessageDialog(null, erro ao ler arquivo);

}

}

}</blockquote>

antes de tudo cara leia isso: http://www.guj.com.br/posts/list/50115.java

gutorocher

Boa tarde Obrigado por todos pela ajuda...... putz realmente esta foi facil.... estava temtando no momento de que o usuario digitar com o metodo .trim() mas não funcionou, mas com ajudad de voce ja foi resolvido... Obrigado....

Guto_Magalhaes

Vc pode utilizar o StringTokenizer:

StringTokenizer st = new StringTokenizer("this is a test", " ");
while (st.hasMoreTokens())
{
	 System.out.println(st.nextToken()); 
}
Guto_Magalhaes

Esqueci de completar hehe. Ai, atraves do laço, vc pode fazer ele retornar os caracteres, menos os brancos

Criado 17 de agosto de 2007
Ultima resposta 17 de ago. de 2007
Respostas 7
Participantes 5