Массив, построенный из данных, взятых из файла, печатает путь к файлу сканера.

Надеюсь, у тебя все хорошо. У меня есть это задание, которое я должен выполнить для своего курса программирования (на самом деле это для промежуточного экзамена), и часть его заключается в следующем. У меня есть файл .dat, в котором хранятся некоторые числа. Файл выглядит так:

123456/100 345678/45 145679/67 135678/32 635479/78 536274/24 986372/80 236580/91 214768/55 426148/13

Итак, я хочу создать несколько пользователей, где первое число (перед косой чертой) будет пин-кодом, а второе число (после косой черты) будет суммой денег, которая у них есть. Я использую сканер для чтения файла, а затем использую разделенную строку, чтобы разделить строки и поместить их в массив для проверки моего файла, но по какой-то причине массив печатает путь к файлу, который я написал в своем конструкторе сканера. Это код, который у меня есть. Это тестовый код, разделенный на 3 класса.

Основной класс:

import java.util.ArrayList;
import java.util.Scanner;
import java.io.IOException;

public class TEST {

    public static void main(String[] args) throws IOException {
        AddUsers user = new AddUsers();    
    }
}    

Класс пользователей, имеет конструктор и сеттеры и геттеры:

public class Users {

    String pin, balance;

    public Users(String pin, String balance){

    }

    public String getPin(){
        return pin;
    }

    public String getBalance(){
        return balance;
    }

    public void setPin(String pin){
        this.pin = pin;
    }

    public void setBalance(String balance){
        this.balance = balance;
    }
}

И, наконец, класс AddUsers, использующий сканер, читает файл и выполняет остальные операции:

import java.util.*;
import java.io.*;


public class AddUsers  {

    Users user;
    String pin, balance;
    int total;
    Scanner scan;
    ArrayList<Users> UserList;

    public AddUsers() throws FileNotFoundException{
        scan = new Scanner("users.dat");
        UserList = new ArrayList();


        while (scan.hasNext()) {
            total++;
            user = new Users("0", "0");

            String tokens[] = scan.nextLine().split("/");
            String last = tokens[tokens.length - 1];
            System.out.println(last);
        }
    }
}

Это вывод, который я получаю

users.dat

Итак, что мне делать? Я хочу, чтобы он печатал числа в файле .dat. Я просто не могу понять это.


person Geri Skenderi    schedule 04.02.2015    source источник
comment
Если это задание, вы должны сделать это самостоятельно... В любом случае попробуйте передать содержимое файла вместо имени.   -  person Michele d'Amico    schedule 04.02.2015
comment
Это то, что я делаю. Я на самом деле почти закончил его, но я застрял на этой части. Я не вижу ничего плохого в том, чтобы попросить немного помощи. Спасибо, в любом случае :)   -  person Geri Skenderi    schedule 04.02.2015


Ответы (1)


Вам нужно передать файловый объект сканеру:

File file = new File("users.dat");
scan = new Scanner(file);
person Stefan    schedule 04.02.2015
comment
Проблема в том, что когда я делаю это так, я получаю исключение «файл не найден». Кстати, я запускаю программу на netbeans, поэтому я поместил файл users.dat в папку src проекта. Итак, если я сделаю code File file = new File(src\\users.dat); сканирование = новый сканер (файл); На выходе это дает мне FileNotFoundException - person Geri Skenderi; 04.02.2015
comment
Вам нужно поместить файл в правильное место или просто передать полное имя ресурса. - person Stefan; 04.02.2015
comment
Я знаю, именно поэтому я поместил в папку src в netbeans, но по какой-то причине это дает исключение «Файл не найден» ... Спасибо, кстати, это было определенно полезно, как только я обойду путь к файлу, я верю, что это будет Работа. - person Geri Skenderi; 04.02.2015
comment
Netbeans не запускает класс в папке src, а в корневой папке - person Michele d'Amico; 04.02.2015
comment
Да, я тоже поместил его в корень, но он все равно выдает, что файл не найден ... не знаю, почему - person Geri Skenderi; 04.02.2015
comment
Как я уже сказал, поместите файл по правильному пути, где работающее приложение будет искать файл или использовать полный ресурс. Это не поможет вам обсудить, что он не может найти его. Индикация исключения «Файл не найден» - это то, что он говорит: файл не может быть найден, потому что его нет там, где вы говорите, что он должен быть в вашем коде. Возможно, вам следует взглянуть на относительный путь и полные пути, чтобы понять поведение. - person Stefan; 04.02.2015