Ler arquivos .txt de uma determinada máquina

5 respostas
G

Olá, tenho um jogo em java em que para você jogar precisa ter uma conta. Como não sei ainda mexer com JDBC, tentei me aventurar no .txt, só há um problema. O sistema lê se existe um arquivo txt de sua conta no disco rígido do USUÁRIO. O que eu gostaria era que o servidor pudesse ler da máquia onde o servidor está rodando.

Vou mostrar um pouco do meu código ok? - Não estranhem alguns métodos, eu utilizo um engine de Java 3D, eu removi o desnecessário e os imports.

public class Main extends SimpleGame {

    public static void main(String[] args) {
        myFrame loginFrame = new myFrame();
        loginFrame.createAndShowGUI();
    }

    public void initTheGame() {
        Main app = new Main();
        app.start();
    }

    @Override
    protected void simpleInitGame() {
        
    }
}

class myFrame implements ActionListener {

    JFrame frame = new JFrame("Login");

    JTextField userText = new JTextField();
    JPasswordField passText = new JPasswordField();
    String userT;
    String passT;

    public void actionPerformed(ActionEvent e) {
        try {
            checkUserInfo();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(myFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

        public void createAndShowGUI() {
        JFrame.setDefaultLookAndFeelDecorated(true);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(new Dimension(200, 250));
        frame.setLayout(null);

        JLabel userLabel = new JLabel("Digite seu usuário:");
        userLabel.setBounds(45, 0, 150, 50);

        userText.setBounds(45, 45, 105, 20);

        JLabel passLabel = new JLabel("Digite sua senha:");
        passLabel.setBounds(45, 70, 150, 50);

        passText.setBounds(45, 115, 105, 20);

        JButton okButton = new JButton("Conectar");
        okButton.setBounds(45, 180, 105, 20);
        okButton.addActionListener(this);

        frame.getContentPane().add(userLabel); frame.getContentPane().add(userText);
        frame.getContentPane().add(passLabel); frame.getContentPane().add(passText);
        frame.getContentPane().add(okButton);

        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
    }

    public void checkUserInfo() throws FileNotFoundException {
        Main game = new Main();

        userT = userText.getText();
        passT = passText.getText();

        File userFile = new File("C:\\users\\" + userT + ".txt");
        FileReader reader = new FileReader("C:\\users\\" + userT + ".txt");
        BufferedReader buffReader = new BufferedReader(reader);
        try {
            String passLine = buffReader.readLine();
            if(passLine.equals(passT)) {
                game.initTheGame();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

5 Respostas

rodrigo.bossini

O que vc pode fazer é mapear uma pasta qualquer da máquina de onde vc precisa ler o arquivo na máquina onde a aplicação executa.
Assim a máquina que executa a aplicação passa a enxergar o diretório remoto como local e acessa o arquivo como se fosse local.

G

Então ele veria somente a sua conta??? e os outros usuários? Cada máquina teria sua conta, mas eu como dono do servidor não poderia manipula-las ? por isso gostaria de saber se é possível ao usuário iniciar a aplicação, acessar um direório que não esteja no computador dele… e sim no meu.

H

Por que não grava em um banco de dados?

G

exemplo por favor? :slight_smile:

H

Desculpe minha falta de atenção, não tinha visto que você não sabe usar JDBC.

Criado 7 de fevereiro de 2010
Ultima resposta 7 de fev. de 2010
Respostas 5
Participantes 3