实验内容
实验内容一:假设有一个梭哈游戏需要保存游戏玩家的结果数据,请用Java编写一个文本文件,保存参与游戏的所有玩家昵称,登陆密码,积分,比赛次数。
实验内容二:读取实验内容一中的文本文件内容显示参与游戏的所有玩家昵称,登陆密码,积分,比赛次数(按照积分进行排序),界面方向参考第11-12章,可以选择awt,swing或者javaFx(https://code.makery.ch/zh-cn/library/javafx-tutorial/),如下图:
class player
package high.studGameAndIO;
public class Player {
private String name;
private String accountNumber;
private String password;
private String number;
private String frequency;
public Player(String name, String accountNumber, String password, String number, String frequency) {
this.name = name;
this.accountNumber = accountNumber;
this.password = password;
this.number = number;
this.frequency = frequency;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public String getNumber() {
return number;
}
public String getFrequency() {
return frequency;
}
@Override
public String toString() {
return name + " " + accountNumber+ " " + password + " " + number + " " + frequency ;
}
}
实验一:
package high.studGameAndIO;
import java.io.*;
/**
* @author: Cai
* @date: 2020/11/4 10:51
* @description:
*/
public class Save {
public static void main(String[] args) {
try {
File file = new File("text1.txt");
if (file.exists()) {
file.createNewFile();
}
FileWriter fileWriter = new FileWriter(file, false);//true代表追加,false,标识向文件中写入会覆盖旧的内容
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
Player p1 = new Player("p1", "123", "123", "1", "3");
Player p2 = new Player("p2", "fgjh", "ewryt", "7", "63");
Player p3 = new Player("p3", "resd", "135", "16", "6");
Player p4 = new Player("p4", "1uyrty", "wert", "91", "376");
Player p5 = new Player("p43", "1djghj", "wdrfthrt", "5461", "3726636");
bufferedWriter.write(p1 + "\n");
bufferedWriter.write(p2 + "\n");
bufferedWriter.write(p3 + "\n");
bufferedWriter.write(p4 + "\n");
bufferedWriter.write(p5 + "\n");
if (bufferedWriter!=null){
bufferedWriter.close();
}
if (fileWriter!=null){
fileWriter.close();
}
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String str = bufferedReader.readLine();
System.out.println(str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
实验二:
package high.studGameAndIO;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.io.BufferedReader;
import java.io.FileReader;
/**
* @author: Cai
* @date: 2020/11/4 10:54
* @description:
*/
public class StudReadAndView extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
Player[] players = new Player[1000];
int num ;
int a ;
BufferedReader br = new BufferedReader(new FileReader("text1.txt"));
String strAll;
a = 0;
while ((strAll = br.readLine()) != null) {
num = 0;
for (int i = 0; i < strAll.length(); i++) {
if (strAll.charAt(i) == ' ') {
num++;
}
}
String arr1[] = strAll.split(" ");
for (int i = 0; i <= num; i++) {
System.out.print(arr1[i] + " ");
}
players[a++] = new Player(arr1[0], arr1[1], arr1[2], arr1[3], arr1[4]);
System.out.println();
GridPane Pane = new GridPane();
Pane.setAlignment(Pos.CENTER);
Pane.setPadding(new Insets(10, 10, 10, 10));
Pane.setHgap(40);
Pane.setVgap(40);
Text name = new Text("昵称");
name.setFill(Color.BLUE);
Text numC = new Text("积分");
numC.setFill(Color.BLUE);
Text pass = new Text("登陆密码");
pass.setFill(Color.BLUE);
Text cnt = new Text("比赛次数");
cnt.setFill(Color.BLUE);
Pane.add(name, 0, 0);
Pane.add(numC, 1, 0);
Pane.add(pass, 2, 0);
Pane.add(cnt, 3, 0);
for (int i = 0; i < a; i++) {
Pane.add(new Text(players[i].getName()), 0, i + 1);
Pane.add(new Text(players[i].getNumber()), 1, i + 1);
Pane.add(new Text(players[i].getPassword()), 2, i + 1);
Pane.add(new Text(players[i].getFrequency()), 3, i + 1);
}
Scene scene = new Scene(Pane);
primaryStage.setTitle("梭哈游戏排行榜");
primaryStage.setScene(scene);
primaryStage.show();
}
}
public static void main(String[] args) {
launch(args);
}
}