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

[code] 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”);
}
}
}
[/code]

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…

isso ainda naum funciona naum kra…

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++;
			}

[quote=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”);
}
}
}[/quote]

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

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....

Vc pode utilizar o StringTokenizer:

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

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