2015-05-14 2 views
0

Я пытаюсь получить некоторые данные из файла (MoviesList) и сохранить их в переменных, а затем распечатать их.Чтение файла и сохранение строк в массив

Файл содержит различные пункты, как это:

Fast & Furious7 (2015) 
Type: Movie 
Director : James Wan 
With : Vin Diesel, Paul Walker, Dwayne Johnson 
Action | Crime | Thriller 137 mins. 

и это фрагмент из кода

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.*; 


public class FlotTest { 
    private static BufferedReader fR; 


    public void lireLignes(File f) throws IOException{ 
     fR= new BufferedReader(new FileReader(f)); 
     String chaine =""; 
     do { 
     chaine = fR.readLine(); 
     if (chaine!= null) { 

      String [] tab=chaine.split(","); 
      String MovieName=tab[1]; 

     System.out.println(MovieName); 



    } 
    }while (chaine != null); 
     fR.close(); 

} 
} 

и это тестовый класс

package testFlot; 

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.*; 

public class test1 { 
    public static void main(String[] args) throws IOException{ 
     FlotTest t= new FlotTest(); 
    File f = new File("MoviesList.txt"); 
     t.lireLignes(f); 
    } 
+0

Это поможет добавить некоторую информацию о том, что вы пытаетесь выполнить (например, ожидаемый результат). – APH

+0

В чем проблема? Любое исключение? – Jack

+0

Я пытаюсь создать список фильмов (я создал класс Movie), и каждый фильм будет содержать название, режиссер, актеры и так – Ielh

ответ

0

Я угадывая, что вы застряли, добавив MovieName в массив? Если это так ...

Объявите ArrayList<String> переменный (на уровне класса предполагая, что вы хотите получить доступ к нему за пределами методы), и где вы в настоящее время вызова System.out.println, просто добавить их в переменную ArrayList.

+0

Спасибо, я попробую это: D – Ielh

0

Если строка считывается и сохраняется в строке Chaine, то вы можете сделать:

//String chaine="Fast & Furious7 (2015) Type: Movie Director : James Wan With : Vin Diesel, Paul Walker, Dwayne Johnson Action | Crime | Thriller 137 mins"; 

    String title = chaine.substring(0, chaine.indexOf("(")-1); 

    System.out.println(title); 

    String year = chaine.substring(chaine.indexOf("(")+1, chaine.indexOf(")")); 

    System.out.println(year); 

    String type = chaine.substring(chaine.indexOf(":")+2, chaine.indexOf("Director")); 

    System.out.println(type); 

    String directors = chaine.substring(chaine.indexOf("Director")+11, chaine.indexOf("With")); 

    System.out.println(directors); 

    //you'll have to figure out a way to parse the actors in depending on how your file is set up 
    //it's interesting you don't have a seperator between Actors and the Genre 


    //you could create an array 
    String[] movie = new String[7]; 
    movie[0]= title; 
    movie[1]=year; 
    movie[2]=type; 
    movie[3]=directors; 



    //I find arraylists easier to deal with so you could create an arraylist 
    ArrayList<String> movieList = new ArrayList<String>(); 
    movieList.add(title); 
    movieList.add(year); 
    movieList.add(type); 
    movieList.add(type); 
    movieList.add(directors); 

я остановился, потому что у меня есть некоторые работы, чтобы закончить, но вы можете легко добавить аналогичные линии для актеров и для жанра и для длины времени, а затем добавить их либо в массив, либо в массивList.

+0

Спасибо! Я начну работать сразу: D – Ielh

+0

Это работает как магия !! Большое спасибо: D – Ielh

+0

Вы очень желанны, надеюсь, что вы закончили свой проект :) – themiDdlest