2016-08-02 3 views
0

Я работаю с текстовыми файлами, и мне нужно получить float и int данные из файлов.Получить данные из текстового файла в полях

Это пример моего текстового файла:

Total money: 800 
ID: IT000323 
Name: Steve 
Age: 29 

Мне нужно получить 800,IT000323,Steve and 29, как я могу это сделать?

+0

использование весной партия – Palcente

+0

Вы должны смотреть на [Scanner] (https://docs.oracle.com/javase/7/docs/api/java/util /Scanner.html) class – Titus

+1

@ Невозможно ничего, я понятия не имею, как это сделать: P, но я думаю, что мог искать фразы и получать следующее слово – ToastMan

ответ

1

Вы можете использовать НИЖЕ класс

public static void getProperties(String infile) throws IOException { 
     final int lhs = 0; 
     final int rhs = 1; 

     ArrayList list = new ArrayList(); 
     BufferedReader bfr = new BufferedReader(new FileReader(new File(infile))); 

     String line; 
     while ((line = bfr.readLine()) != null) { 
      if (!line.isEmpty()) { 
       String[] pair = line.trim().split(":"); 
       list.add(pair[rhs].trim()); 
      } 
     } 

     bfr.close(); 

     System.out.println(list.toString()); 
    } 

Он будет возвращать значения как

[800, IT000323, Стив, 29]

String infile будет содержать путь к файлу. Например: D: \ test.txt

0

Вы можете просто объявить регулярное выражение с такими группами, как это:

"Total money: ([0-9]*) ID: (.*) Name: (.*) Age: ([0-9]*)"; 

Тогда вы просто должны соответствовать каждой строки файла с ним и получить каждую группу в порядке. Вы можете просто использовать Pattern API, если вы используете по крайней мере Java 7

1

Вы можете сделать что-то вроде этого:

try (Scanner sc = new Scanner("Total money: 800 ID: IT000323 Name: Steve Age: 29")){ 
    sc.useDelimiter("((^|)[^\\:]+\\:)"); 
    int money = sc.nextInt(); 
    String id = sc.next(); 
    String name = sc.next(); 
    int age = sc.nextInt(); 
    System.out.println("money: " + money + " id: " + id + " name: " + name + " age: " + age); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
Смежные вопросы