Passar como entrada um arquivo de texto

12 respostas
KNSetting

Bem é o seguinte estou querendo testar meu programa com varias possibilidades e pra isso queria passar como entrada um arquivo que ja tem tudo digitado o que o programa pede pra digitar… ele recebe tudo pela entrada padrão… não lembro com faz… acho que é algo do tipo
java <entrada.txt> programa <saida.txt>
se alguem puder me ajudar agradeço…

12 Respostas

lelodois

KNSetting:
Bem é o seguinte estou querendo testar meu programa com varias possibilidades e pra isso queria passar como entrada um arquivo que ja tem tudo digitado o que o programa pede pra digitar… ele recebe tudo pela entrada padrão… não lembro com faz… acho que é algo do tipo
java <entrada.txt> programa <saida.txt>
se alguem puder me ajudar agradeço…

se seu programa recebe dois argumentos é so vc passar os argumentos separados por espaço, pois eles serao inseridos em um array de String.
no seu caso seria java <entrada.txt> <saida.txt> programa
no seu main args[0] = entrada.txt>, args [1] = saida.txt.
flw

ViniGodoy

Tudo que foi digitado na entrada padrão entra no programa através do array args, presente no main.

Por exemplo, esse comando:
java Imprime Vinicius Godoy

Imprime Vinicius Godoy com essa classe:
public class Imprime {
    public static void main(String[] args) {
       if (args.length == 0) {
           System.out.println("Forneça pelo menos 2 argumentos.");
           System.exit(1);
       }

       //Imprime o Vinícius, ou melhor, o primeiro argumento passado na linha de comando
       System.out.print(args[0]); 
       System.out.print(" ");
       //Imprime o segundo argumento, no caso, Godoy.
       System.out.println(args[1]);
    }
}
KNSetting

é mais ou menos isso só que meu código não usa o argumento da main, tipo eu quero dar a entrada 3 2 5 7 no programa, só que ao inves de digiar, eu tenho um arquivo de texto que só tem escrito nele 3 2 5 7 e quero que ele seja passado como argumento para meu programa, a entrada é um arquivo como você fez mas ao inves do texto passo como argumento o txt, e o Scanner pega-o e ler o que tem dentro como se eu tivesse passando pelo teclado.

public class inter {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num;
        num = input.nextInt();
        int[] numero = new int[num];
        for (int i = 0; i < num; i++) {
            numero[i] = input.nextInt();
        }
    }
}
KNSetting

Opa foi mal, não tinha lido o que o lelo postou acabei lendo só o do viny mas é isso que eu quero mesmo lelo só que quando faço esse comando java programa o prompt ta reotornando
< foi inesperando nesse momento

lelodois

KNSetting:
Opa foi mal, não tinha lido o que o lelo postou acabei lendo só o do viny mas é isso que eu quero mesmo lelo só que quando faço esse comando java programa o prompt ta reotornando
< foi inesperando nesse momento

resolveu?

KNSetting

olha a saida do prompt abaixo

java programa
ai ele diz: < foi inexperado nesse momento.

lelodois

KNSetting:
olha a saida do prompt abaixo

java programa
ai ele diz: < foi inexperado nesse momento.

estranho, posta sua classe e a chamada dela no dos ai

KNSetting
lelodois

vc pega do scanner e coloca em um array.
oq vai mudar é que vc vai pegar de um txt.
facinho facinho
olhe este link: http://www.guj.com.br/java.tutorial.artigo.13.1.guj
da uma estudada la…
Faça uma classe que será responsável por receber os dados e validar, depois vc passa como parametro o array tratado para esta sua logica, no caso ela fica totalmente separada da parte de inserção dos dados, sendo assim independente de onde virá.
Assim vc pode tratar de um scanner, txt, etc…
da uma olhadinha la e se tiver duvidas de como ler posta ai…
abs

KNSetting

blz cara é que, pensei q esse trabalho de enviar os dados para o programa era feito pelo prompt e não pelo meu programa receber um arquivo, pois o que ele deve receber é sim a entrada do usuario digitando um por um, mas eu não quero ficar digitando um por um toda vez pra fazer o teste dai pensei nesse caso de passar o arquivo como enrada, mas parece que esse artigo q vc mandou deixa o programa recebendo de qualquer lugar, agora estou estudano uma outra parada mais vou dar uma olhada nele, vlw cara um abraço.

M
BufferedReader  bf=new BufferedReader(new FileReader(nome_do_arquivo));

<variável1>=bf.readLine();

<variável2>=bf.readLine();

ou armazene em uma array…

lelodois

blz… qq coisa responde neste mesmo tópico aq e depois fecha o tópico como resolvido!!
abs

Criado 24 de novembro de 2008
Ultima resposta 25 de nov. de 2008
Respostas 12
Participantes 4