admin 管理员组

文章数量: 1086866

【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为:水之开心,性别:女

本文标签: Java学习10入门篇之综合实战(对象IO流方法等)