簡體   English   中英

無法將txt文件讀入對象數組然后打印出結果

[英]Can't read the txt file in to an array of objects and then print out the result

我試圖從我的Movie class讀取一個文件到一個對象數組中,然后打印結果。

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();
  }
}

如果您想像您一樣遍歷輸入流,請嘗試使用 BufferedReader 和 FileReader 類而不是掃描器。 在鏈接中是一個有用的教程如何做到這一點:

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

此外,您可以使用“.split(regex)”方法進一步處理來自文件的傳入信息。 (例如用 String.split("\\s+"); 在空格上分割)

至於將信息添加到數組中; 您可以嘗試使用 ArrayList 及其 .add() 方法,而不是您現在使用的對象 Array。

您的Movie_Class構造函數方法應該是public Movie_Class ,而不是public Movie_18512117 這是第一個錯誤。 閱讀有關構造函數的更多信息。 然后你可以通過調用創建一個新的Movie_Class對象

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

在構造函數中,您必須輸入電影的所有詳細信息,而不僅僅是ID 如果你想創建一個只有ID的電影對象,你應該定義一個只有ID作為輸入值的新構造函數,如下所示

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

如果要添加對象,但不知道應該存儲在其中的元素的確切數量,您可以使用 ArrayList 而不是 Array。 在此處閱讀有關ArrayList和其他集合的信息 首先嘗試修復這些錯誤。 然后你可以繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM