【Java学习】10入门篇之综合实战(对象、IO流、方法等)

问题描述:3v3游戏,每次开始游戏前先检查玩家列表,有过列表为空则向里面添加游戏玩家。游戏结束后,如果是新添加的游戏玩家,则写入到玩家列表当中,如果不是,结束操作。

创建游戏玩家对象:

public class GamePlayer {
 private String id;
 private Boolean gender;
 private int attact;
 
 public GamePlayer() {
 }
 public GamePlayer(String id, Boolean gender, int attact) {
  this.id = id;
  this.gender = gender;
  this.attact = attact;
 }
 
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public Boolean getGender() {
  return gender;
 }
 public void setGender(Boolean gender) {
  this.gender = gender;
 }
 public int getAttact() {
  return attact;
 }
 public void setAttact(int attact) {
  this.attact = attact;
 }
}

主程序及其相关方法步骤:

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.ArrayList;
import java.util.Scanner;
public class Test {
 public static void main(String[] args) throws IOException {
  // 检查好友列表文件及其目录,如果不存在则创建
  System.out.println("检查好友列表及其目录,如果不存在则创建");
  File file = new File("D:/Java/workspace/learnCourse/src/learn/pre/course10/listOfGameFriends.txt");
  if (!file.getParentFile().exists()) {
   file.getParentFile().mkdirs(); // 判断
  }
  if (!file.exists()) {
   file.createNewFile();
  }
  // 创建集合用来存放玩家对象
  System.out.println("创建集合用来存放玩家对象");
  ArrayList<GamePlayer> list = new ArrayList<>();
  // 读取文件内容到集合
  System.out.println("读取文件到集合");
  list = read(list);
  // 判断是否为新的文件,是新的,则为其添加文件
  System.out.println("判断好友列表是否为新,如果是新的,向集合中添加新的好友:");
  Boolean isNew = (list.size() == 0);
  if (isNew) {
   list = addGamePlayer(3, list);
  }
  // 打印输出我方队伍的id和性别
  System.out.println("打印输出我方队伍的召唤师ID和性别");
  printIdAndGender(list);
  // 将集合写入文件
  if (isNew) {
   writeIntoFile(list);
  }
 }
 // 读取文件、存放到集合
 public static ArrayList<GamePlayer> read(ArrayList<GamePlayer> list) throws IOException {
  FileReader fr = new FileReader("D:/Java/workspace/learnCourse/src/learn/pre/course10/listOfGameFriends.txt");
  BufferedReader br = new BufferedReader(fr);
  String line;
  String[] arr;
  while ((line = br.readLine()) != null) {
   System.out.println("运行了");
   arr = line.split(",");
   String idName = arr[0];
   Boolean gender = Boolean.valueOf(arr[1]).booleanValue(); // 字符串转为布尔值
   int attact = Integer.valueOf(arr[2]).intValue(); // 字符串转int值
   GamePlayer gp = new GamePlayer(idName, gender, attact);
   list.add(gp);
  }
  br.close();
  return list;
 }
 // 添加游戏玩家(手动键入)
 public static ArrayList<GamePlayer> addGamePlayer(int num, ArrayList<GamePlayer> list) {
  Scanner sc = new Scanner(System.in);
  System.out.println("运行了!");
  for (int i = 1; i <= num; i++) {
   System.out.print("请输入第" + i + "位玩家的ID:");
   String idName = sc.next();
   System.out.print("请输入第" + i + "位玩家的性别(true为男,false为女):");
   Boolean gender = sc.nextBoolean();
   System.out.print("请输入第" + i + "位玩家的熟练度:");
   int attact = sc.nextInt();
   GamePlayer gp = new GamePlayer(idName, gender, attact);
   list.add(gp);
  }
  sc.close();
  return list;
 }
 // 打印输出
 public static void printIdAndGender(ArrayList<GamePlayer> arr) {
  GamePlayer gp;
  for (int i = 0; i < 3; i++) {
   gp = arr.get(i);
   String idName = gp.getId();
   Boolean gender = gp.getGender();
   if (gender) {
    System.out.println("第" + (i + 1) + "位召唤师的ID为:" + idName + ",性别:男");
   } else {
    System.out.println("第" + (i + 1) + "位召唤师的ID为:" + idName + ",性别:女");
   }
  }
 }
 // 写入文件
 public static void writeIntoFile(ArrayList<GamePlayer> arr) throws IOException {
  FileWriter fw = new FileWriter("D:/Java/workspace/learnCourse/src/learn/pre/course10/listOfGameFriends.txt",
    true);
  BufferedWriter bw = new BufferedWriter(fw);
  for (int i = 0; i < arr.size(); i++) {
   GamePlayer gp = arr.get(i);
   String idName = gp.getId();
   Boolean gender = gp.getGender();
   int attact = gp.getAttact();
   bw.write(idName + "," + gender + "," + attact);
   bw.newLine();
  }
  bw.close();
 }
}

首次运行结果:

检查好友列表及其目录,如果不存在则创建
创建集合用来存放玩家对象
读取文件到集合
判断好友列表是否为新,如果是新的,向集合中添加新的好友:
运行了!
请输入第1位玩家的ID:火之高兴
请输入第1位玩家的性别(true为男,false为女):false
请输入第1位玩家的熟练度:233
请输入第2位玩家的ID:霜之哀伤
请输入第2位玩家的性别(true为男,false为女):true
请输入第2位玩家的熟练度:1122
请输入第3位玩家的ID:水之开心
请输入第3位玩家的性别(true为男,false为女):false
请输入第3位玩家的熟练度:12
打印输出我方队伍的召唤师ID和性别
第1位召唤师的ID为:火之高兴,性别:女
第2位召唤师的ID为:霜之哀伤,性别:男
第3位召唤师的ID为:水之开心,性别:女

第二次运行结果:

检查好友列表及其目录,如果不存在则创建
创建集合用来存放玩家对象
读取文件到集合
运行了
运行了
运行了
判断好友列表是否为新,如果是新的,向集合中添加新的好友:
打印输出我方队伍的召唤师ID和性别
第1位召唤师的ID为:火之高兴,性别:女
第2位召唤师的ID为:霜之哀伤,性别:男
第3位召唤师的ID为:水之开心,性别:女
发布了11 篇原创文章 · 获赞 2 · 访问量 186

猜你喜欢

转载自blog.csdn.net/qq_42934847/article/details/105186717
今日推荐