[Java]Duvidas num programa

MadOnion

Folding Member
Pessoal tenho aqui uma duvida simples... ja tive a procurar no manual da faculdade mas foi sem sucesso.
Só quero mesmo ler algo que esteja num txt, por exemplo:

O nome.txt tem o meu próprio nome.
O Teste.java tem:
Código:
import java.util.Scanner;

public class Teste {
	public static void main(String []args) {
	Scanner leitor = new Scanner ("nome.txt");

	System.out.println("O meu nome e: "+leitor);
	}
}

Obviamente o Teste.java e o nome.txt estão situados na mesma pasta.
O resto que dá é o seguinte:

Código:
O meu nome e: java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][matc
h valid=false][need input=false][source closed=false][skipped=false][group separ
ator=\.][decimal separator=\,][positive prefix=][negative prefix=\Q-\E][positive
 suffix=][negative suffix=][NaN string=\Q?\E][infinity string=\Q?\E]

Algo está a escapar... mas eu não fui ou não dei a aula de leitura de ficheiros, e sei que o procedimento não é este... foi mais um desenrascanço.
Alguém me consegue safar?
 
Última edição:
Adicionei a linha:
Código:
String nome = leitor.next();
E alterei a S.O.P para:
Código:
System.out.println("O meu nome e: "+nome);
[code]

O output agora é:
[code]
O meu nome e: nome

:S
 
Boas,

Não uses o Scanner para ler ficheiros com este objectivo, o Scanner permite-te identificar primitivos e trata-los através de regexps. Usa antes isto :

Código:
    public static void main(String[] args) {
        try {
            BufferedReader in = new BufferedReader(new FileReader("D:/nome.txt"));
            String nome = "";

            while ((nome = in.readLine()) != null)
                System.out.println("O meu nome e: " + nome);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

O que isto faz é que enquanto não terminar o ficheiro (readLine != null) ele despeja-te as linha(s) para a consola. Se tens a certeza que a 1ª linha é preenchida e que tem o que tu queres, retira a linha do while.

Abraços,
Lostctrl
 
Última edição:
Obrigado, és sempre tu a safar-me nestas questões de java.
Eu fiz de outra maneira que não é bem parecida mas cá vai.

Excerto do código:
Código:
public class Teste {
  public void main(String[]args) throws IOException {
    Scanner leitor = new Scanner(new File(args[0]));

E depois de compilar... ao correr fiz "java Teste nome.txt".
Também serve.
Mas percebi a tua dica ;)
 
MadOnion disse:
Obrigado, és sempre tu a safar-me nestas questões de java.
Eu fiz de outra maneira que não é bem parecida mas cá vai.

Excerto do código:
Código:
public class Teste {
  public void main(String[]args) throws IOException {
    Scanner leitor = new Scanner(new File(args[0]));

E depois de compilar... ao correr fiz "java Teste nome.txt".
Também serve.
Mas percebi a tua dica ;)


Existem imensas formas de abordar e dar a volta à situação :) heheheh

Abraços,
Lostctrl
 
boas pessoal, ando eu na interminável luta com o java, desta vez é o sudoku.
Tenho um projecto pra entregar(até ás 00h de hoje 8o ), e tenho aqui algumas duvidas.
Vou ter que fazer duas classes, uma chamada sudoku, e outra chamada RunSudoku onde tem o main.
A questão é: Este programa consiste em verificar se uma determinada solução do sudoku está correcta, se estiver tudo bem... se não estiver ele emite uma mensagem, e mostra o jogo errado.
Na classe sudoku tenho o seguinte:
Código:
public class Sudoku2 {
    private int[][] matriz;
    
    public boolean linhas(){
	
	for(int i=0; i<8; i++)
	    for(int j=0; i<8; j++)
		if(matriz[i][j] == matriz[i+1][j]);
		    return false;
    }

    public boolean colunas(){
	 
	for(int i=0; i<8; i++)
	    for(int j=0; j<8; j++)
		if(matriz[i][j] == matriz[i][j+1]);
		    return false;
    }
}
Eu não faço ideia se este pedaço de código está certo, mas se estiver tudo bem.
Gostaria que alguem me indicasse a melhor maneira de verificar as regiões do sudoku, ou seja aqueles 3*3 em que não se pode repetir numeros, já que linhas e colunas mal ou bem estão concluidos.
Se alguem me conseguir safar, agradecia.

Cumps mad.
 
tambem andas na faculdade de ciencias... mau sitio pra vires expor o teu codigo.
ha aqui muitos alunos da faculdade.

inclusive eu.
era mais inteligente usares as news do DI. digo eu.

cumprimentos.
 
Eu não pedi o código, pedi uma ajuda, todo o código é diferente a partir daí.
Mas também agora deixa de ter efeito, ja foi entregue e já me desfiz do codigo pra não ter mais dores de cabeça.
 
Back
Topo