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");
}
}
}
PROBLEMA ME AJUDE esta retornando ate os espaços do texto no arquivo txt
7 Respostas
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++;
}
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
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