Как назначить значения из текстового файла с BufferedReader из определенной строки? - PullRequest
0 голосов
/ 13 мая 2018
package inputOutput;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class Test_leser {

public static void main(String[] args) throws IOException {

    // asking which file to open (no abändre das es dynamisch übere Browser funktioniert)
    Scanner scan = new Scanner(System.in);

    System.out.println("Enter Filename ");
    BufferedReader bReader = null;

    // Open demanded file
    try {
        bReader = new BufferedReader(
                new FileReader("C:\\Users\\valat\\OneDrive\\Desktop\\image-data\\" + scan.next()));

    } catch (FileNotFoundException fnfex) {
        System.out.println(fnfex.getMessage());
        // Programm geht nicht weiter, falls file not found
        System.exit(0);
    }

    String line;
    String resolution = null;
    String image = null;
    String description = null;
    int i   = 0;

    // assigning values to variables
    while ((line = bReader.readLine()) != null) {

        // zähler
        i += 1;

        if (line.startsWith("description:")) {
                description = line;
        }

        else if (line.startsWith("image-file")) {

            image = line;
        }

        else if (line.startsWith("resolution:")) {
            resolution = line;

        } else {
            System.out.println("something is REALLY wrong");
        }

        System.out.println(description);
        System.out.println(image);
        System.out.println(resolution);
    }

}

}

Привет.У меня тут проблемы.Я читаю этот текст с помощью BufferedReader из текстового файла:

description: Blutausstrich (Mensch)
image-file: image01.jpg
resolution: 0.002 mm

, после чего мое следующее намерение состоит в том, чтобы перебирать каждую строку и присваивать каждой строке свою переменную.Проблема в том, что мой вывод, всякий раз, когда я пытаюсь это сделать, следующий:

description: Blutausstrich (Mensch)
null
null
description: Blutausstrich (Mensch)
image-file: image01.jpg
null
description: Blutausstrich (Mensch)
image-file: image01.jpg
resolution: 0.002 mm

Как вы, наверное, видите, это не совсем то, что я хочу.Как я могу назначить только определенные строки, которые заполняют мое условие if из txtfile моими переменными?Я был бы очень признателен за помощь, я пытаюсь играть с этим часами, я искал много разных вещей, и я уверен, что это довольно очевидный ответ, который заставит меня задуматься "о черт возьми, серьезно«Я идиот».

Заранее спасибо, ребята!

1 Ответ

0 голосов
/ 13 мая 2018

Вывод stdout из цикла while:

        System.out.println(description);
        System.out.println(image);
        System.out.println(resolution);

Проблема в том, что мы печатаем перед присвоением всех переменных.

Ура!

...