Przeszukiwanie pliku CSV

0

Witajcie, mam problem ... Chciałbym żeby plik CSV wg wzoru:
1 ; jakiś_adresIP1
2 ; jakiś_adresIP1
3 ; jakiś_adresIP1
4 ; jakiś_adresIP1
5 ; jakiś_adresIP1

Został wczytany (to mi się udało) , ale do tego po wybraniu odpowiej wartości (podawanej z klawiatury) pingował odpowiadający mu w linii adres IP. Dałoby radę coś takiego wyskrobać ? :)

Jak na razie mam taki kod:

import java.io.BufferedReader;
import java.io.FileReader;

import javax.swing.*;

public class Wczytaj_CSV {

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

    String txt; //deklaracja zmiennej tekstowej
    txt = JOptionPane.showInputDialog("Podaj numer który ma zostać spingowany:");
    int n = Integer.parseInt(txt);

      String splitBy = ";"; //rozpoznanie w pliku
      BufferedReader test = new BufferedReader(new FileReader("test.csv")); //otwarcie pliku i utworzenie bufora
      String line;
      System.out.println("WCZYTANIE PLIKU:");
    while((line = test.readLine()) != null){ //wczytuj dane aż do momentu gdzie linia będzie pusta
           String[] tab = line.split(splitBy); // tablica 
          // System.out.println(tab[0] +" * " + tab[1]); //dodawanie indeksów tablicy do pliku

      }
      test.close(); //koniec

  }
}

Pozdrawiam Was i liczę na jakąś odpowiedź :)

0

Jeśli dobrze rozumiem pytanie:

  1. Wczytaj dane z pliku do Map<Integer, String>
  2. pinguj mapa.get(numerek_z_klawiatury)
0

Mapa get mnie nie urządza, bo podanie numeru musi być z klawiatury , w sensie interaktywnie np przy wyrzuceniu okienka jak w kodzie powyżej.

0

A co ma piernik do wiatraka? o_O

0

A jak mogę wczytać plik CSV do mapy?

1

Jak faktycznie masz tam takie śmieszne spacje w tym csv to elegancko tak:

        Map<String, String> IPs = Files.readAllLines(Paths.get("input.csv")).stream()
                .map(line -> line.split(";"))
                .collect(Collectors.toMap(
                        array -> array[0].trim(),
                        array -> array[1].trim()
                ));

I teraz w tym swoim kodzie robisz sobie:

String selected = JOptionPane.showInputDialog("Podaj numer który ma zostać spingowany:");
String IP = IPs.get(selected);

No i reszta tego tego kodu to pewnie:

InetAddress inet = InetAddress.getByName(IP);
System.out.println(inet.isReachable(5000));
0

Coś ta część z mapą mi nie paca ...

0

Java 8.

0

.map(line -> line.split(";"))
Syntax error ? Prawdopodbnie chodzi coś o "-" ...

0

Ale java 8 ci wypluwa tu jakiś syntax error? Bo u mnie się kompiluje bez problemu... Bez javy 8 to się nie skompiluje...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0