2016-09-29 82 views
-3

我正尝试从我的Movie class中读取文件,插入对象数组中,然后打印结果。无法读取对象数组中的txt文件,然后打印出结果

public class Movie_Class { 
    private int MovieID; 
    private String MovieTitle; 
    private String Director; 
    private String Writer; 
    private String Duration; 
    private String Genre; 
    private String Classification; 
    private String ReleaseDate; 
    private Double Rating; 

    public Movie_18512117(int ID, String Title, String Mdirector, String Mwriter, 
String Mduration, String Mgenre, String Mclassification, String MreleaseDate, Double Mrating) { 

    MovieID = ID; 
    MovieTitle= Title; 
    Director= Mdirector; 
    Writer= Mwriter; 
    Duration= Mduration; 
    Genre= Mgenre; 
    Classification= Mclassification; 
    ReleaseDate= MreleaseDate; 
    Rating= Mrating; 
    } 

    public int getMovieID(){ 
    return MovieID; 
    } 

    public String getMovieTitle(){ 
    return MovieTitle; 
    } 

    public String getDirector(){ 
    return Director; 
    } 

    public String getWriter(){ 
    return Writer; 
    } 

    public String getDuration(){ 
    return Duration; 
    } 

    public String getGenre(){ 
    return Genre; 
    } 

    public String getClassification(){ 
    return Classification; 
    } 

    public String getReleaseDate(){ 
    return ReleaseDate; 
    } 

    public Double getRating(){ 
    return Rating; 
    } 

    public void setMovieID(int MovieID) { 
    this.MovieID = MovieID; 
    } 

    public void setMovieTitle(String MovieTitle){ 
    this.MovieTitle = MovieTitle; 
    } 

    public void setDirector(String Director) { 
    this.Director = Director; 
    } 

    public void setWriter(String Writer) { 
    this. Writer = Writer; 
    } 

    public void setDuration(String Duration) { 
    this. Duration = Duration; 
    } 

    public void setGenre(String Genre) { 
    this.Genre = Genre; 
    } 

    public void setClassification(String Classification){ 
    this.Classification = Classification; 
    } 

    public void setReleaseDate(String ReleaseDate){ 
    this.ReleaseDate = ReleaseDate; 
    } 

    public void setRating(Double Rating){ 
    this.Rating = Rating; 
    } 
} 

import java.io.File; 
import java.util.Scanner; 
import java.io.FileNotFoundException; 

public class movie { 
    public static void main(String[] args) throws FileNotFoundException { 
    File myFile = new File ("movieLibrary.txt"); 
    Scanner inputFile = new Scanner(myFile); 
    String str; 
    Movie_Class[] movie = new Movie_Class[100]; 
    String[] tokens; 

    while (inputFile.hasNext()){ 
     str=inputFile.next(); 
     tokens = str.split(","); 
     for(int i = 0; i < movies.length; i++){ 
     movie[i] = new Movie_18512117(1); 

//I don't know how to read the lines in to //my array and split the spaces, then print the result. 

     System.out.println(movie); 
     } 
    } 
    inputFile.close(); 
    } 
} 
+1

[欢迎使用Stackoverflow](http://stackoverflow.com/help/how-to-ask)!发生了哪个问题,您正在尝试修复? –

+0

你忘记描述问题并提出问题。 – csmckelvey

回答

0

尝试使用BufferedReader和FileReader类而不是扫描程序,如果您想像您一样遍历输入流。在链接是一个有用的教程如何做到这一点:

https://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/

还,您可以使用“.split(正则表达式)”梅索德进一步处理从该文件的输入信息。 (例如用空格分割String.split(“\ s +”);)

至于将信息添加到数组;您可以尝试使用ArrayList及其.add()方法,而不是现在使用的对象Array。

0

Movie_Class的构造函数方法应该是public Movie_Class而不是public Movie_18512117。这是第一个错误。详细了解constructors。 然后你就可以通过调用

movie[i] = new Movie_Class(...); 

在构造函数中创建一个新的Movie_Class对象,你必须输入影片的所有细节,而不仅仅是ID。如果你想创建一个只ID电影对象,你应该定义一个新的构造,只有ID作为输入值,如以下

public Movie_Class (int ID) { 
    // Do whatever you want 
} 

可以使用,而不是一个数组ArrayList中,如果你想添加对象,而不知道你应该存储的元素的确切数量。阅读关于ArrayLists和其他收藏here。 尝试先解决这些错误。然后你可以继续。