java - 将文本文件读取到对象的对象数组中?

标签 java arrays object bufferedreader readfile

有没有办法将文本文件读入对象数组?我已经设法使用字符串对象数组来做到这一点 - 但我不知道如何使用对象对象数组来做到这一点。即手牌对象数组。这是我的代码;

try {
            FileReader fr = new FileReader(file_name);
            BufferedReader buf = new BufferedReader(fr);
            //Create temporary arraylist to store hand
            ArrayList<Hand> tempHand = new ArrayList<>();
            Hand hand;

            int numLines = 0;
            String lineHand;
            while ((lineHand = buf.readLine()) != null){
            numLines++;
            //Initialise new empty hand object 
            hand = new Hand();
            //Add hand 
            hand.addHand(lineHand);
            //Add hand to temporary array
            tempHand.add(hand);

        }
            //display hands
            for (int i =0; i<tempHand.size(); i++){
                System.out.println(tempHand.get(i).getHand());
            }

        }
        catch(IOException e) {
            e.printStackTrace();
        }

通过上面的代码,我可以看到 iv'e 哪里出了问题,但我不知道如何修复它。我尝试使 lineHand 类型为 Hand 而不是 string,但随后我使用 buf.readline() 遇到了问题。关于如何解决这个问题有什么想法吗?

最佳答案

一张牌是一对值:等级和花色。

public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES }
public enum Rank {
  TWO("2"), THREE("3"),... JACK("J"), QUEEN("Q"), KING("K"), ACE("A");
  String rep;
  Rank( String rep ){
    this.rep = rep;
  }
  public getRep(){
   return rep;
  }    
} 

public class Card {
  private Rank rank;
  private Suit suit;
  public Card( Rank rank, Suit suit ){
    this.rank = rank;
    this.suit = suit;
  }
}

Hand 是什么取决于游戏,但是包含 Set<Card> 的类对于使用单套牌玩的游戏来说效果很好。

现在:如何读取卡片?还有套牌?

卡片的表示形式可以是 "CLUBS 2" ,文本文件上的字符序列。使用扫描器依次获取一个标记(“CLUBS”、“2”),并将字符串值转换为枚举值。 ( enum Rank 中缺少一些内容,您必须添加它。)但这对于枚举 Suit 来说很简单。

对于 Hand:这只是 Card 对象的序列,按上面的方法读取并添加到 Hand 对象的 Set<Card> 中。 .

关于java - 将文本文件读取到对象的对象数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27678547/

相关文章:

java - 在随机访问文件中寻求实现

c++ - 当需要数组时,将指针传递给 vector 中的第一个元素是否安全?

php - 在php中的std对象中添加方法

java - SwipeRefreshLayout 刷新 RecyclerView 无需下拉

java - 本地 X 从 FOR 到事件

java - 如何将一个对象添加到另一个对象的数组中java

java - 如何创建一个包含 20 个随机字节的数组?

javascript - Parse.com 云作业 : Array of pointers missing entries and containing null

windows - "\\.\"、 "\??\"、 "\\?\"、 "\\"是什么意思?

javascript - JavaScript 对象的属性