Во-первых, у меня есть класс Mov ie, например,
public class Movie {
private int duration;
private String title;
private int year;
private ArrayList <Movie> movies;
public Movie() {
}
public Movie(int duration,String title,int year) {
this.duration = duration;
this.title = title;
this.year = year;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String toString() {
return "Duration:" + this.duration + ",, "
+ "Title:" + this.title + ",, " + "Year:"
+ this.year;
}
}
И у меня есть класс управления для выполнения некоторых операций. У меня есть несколько фильмов в текстовом файле, и я хочу сохранить их в формате ArrayList
типа Movie
. Итак, для этого я создаю метод, как вы можете видеть ниже.
public void textFileToArrayList() {
movie = new ArrayList<Movie>();
BufferedReader br = null;
Movie e = null;
try {
br = new BufferedReader(new FileReader("movies.txt"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String line;
try {
while ((line = br.readLine()) != null) {
String data[] = line.split("\t");
e = new Movie();
e.setDuration(Integer.parseInt(data[0]));
e.setTitle(data[1]);
e.setYear(Integer.parseInt(data[2]));
movie.add(e);
}
for(Movie i : movie){
System.out.println(i.getDuration()+","+i.getTitle()+","+i.getYear());
}
br.close();
} catch (IOException io) {
io.printStackTrace();
}
}
Моя проблема в том, что при отладке я вижу, что синтаксический анализ в порядке, но по какой-то причине мой mov ie ArrayList
всегда пусто Я не могу получить доступ к своему текстовому файлу при использовании ArrayList
. Я могу разобрать его, но не могу сохранить и распечатать.
Мой полный код:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
import java.util.stream.Collectors;
import java.util.List;
import sait.mms.problemdomain.Movie;
public class MovieManagementSyste {
ArrayList<Movie> movi = new ArrayList<Movie>();
public MovieManagementSyste() {
textFileToArrayList();
displayMenu();
}
public void textFileToArrayList() {
movi = new ArrayList<Movie>();
BufferedReader br = null;
Movie e = null;
try {
br = new BufferedReader(new FileReader("movies.txt"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String line;
try {
while ((line = br.readLine()) != null) {
String data[] = line.split(",");
e = new Movie();
e.setDuration(Integer.parseInt(data[0]));
e.setTitle(data[1]);
e.setYear(Integer.parseInt(data[2]));
movi.add(e);
}
for(Movie i : movi){
System.out.println(i.getDuration()+","+i.getTitle()+","+i.getYear());
}
br.close();
} catch (IOException io) {
io.printStackTrace();
}
}