Пустое место при чтении файла Java - PullRequest
0 голосов
/ 09 марта 2012
private Scanner inputFile;
private String corpusFileString = "";
try
{
    File file = new File(sourceFile.getText());
    inputFile = new Scanner(file);
    JOptionPane.showMessageDialog(null, "The file was found.");
    if (text != null)
    {
        translate.setEnabled(true);
    }
}
catch (FileNotFoundException ex)
{
    JOptionPane.showMessageDialog(null, "The file was not found.");
}

try
{
    numberWords = inputFile.nextInt();
}
catch (InputMismatchException ex)
{
    JOptionPane.showMessageDialog(null, "The first line on the file must be an integer");
}

while (inputFile.hasNext())
{
    corpusFileString = corpusFileString + inputFile.nextLine() + " ";
}

Поэтому, когда я читаю этот файл, первая строка должна быть целым числом (это будет содержать другая переменная), иначе будет сгенерировано исключение. Остальная часть файла должна быть данными (еще одна переменная для всех данных), но по какой-то причине строка содержит пустое пространство в начале, и когда я делю ее, мне нужно использовать +1 в моем массиве из-за этой пустой области.

Ответы [ 3 ]

0 голосов
/ 09 марта 2012

Проблема в том, что он читает первый int, а затем остаток первой строки.

В основном:

15 \ na строка здесь \ n другая строка здесь

Где \ n - это новая строка.

Он читает 15, затем читает \ n, что означает "" (без символа новой строки).Остальное читается так, как вы ожидали.

Попробуйте использовать:

numberWords = Integer.parseInt(inputFile.nextLine());

Вместо

numberWords = inputFile.nextInt();
0 голосов
/ 09 марта 2012

Я не уверен насчет Java. Возможно, вам нужно позвонить hasNext(), прежде чем пытаться читать с nextInt() Так работают читатели и счетчики .NET. В c # я бы написал что-то вроде

while (reader.MoveNext()) {
    string s = reader.Current;
}

В вашем случае вы можете попробовать

if (inputFile.hasNext()) {
    numberWords = inputFile.nextInt();
}
0 голосов
/ 09 марта 2012

Используйте String.Trim () для удаления пробелов в начале и конце строки. Ссылка на метод: http://msdn.microsoft.com/de-de/library/t97s7bs3(v=vs.110).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...