将特定密码添加到文件中

  • 本文关键字:文件 添加 密码 java
  • 更新时间 :
  • 英文 :


当它们被添加到平面时,我必须向每个平面文件添加一个特定的passanger

例如:plane1 = p1 = new Passanger("Victor", "Mihai", 28);

所以在文件Beoing.txt中,我将只有Passanger{name='Victor', surname='Mihai', age=28}

但相反,我在每个文件中都有它们,这不是我想要的。

我做的下面的代码是添加所有的passanger,但我找不到只添加添加到飞机上的方法。

我的乘客等级:

public class Passanger {
private String name;
private String surname;
private int age;
public Passanger(String name, String surname, int age) {
this.name = name;
this.surname = surname;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Passanger{" +
"name='" + name + ''' +
", surname='" + surname + ''' +
", age=" + age +
'}';
}
}

我的飞机等级:

import java.util.ArrayList;
import java.util.List;
public class Plane {

private String name;
private String color;
private int spaces;
List<Passanger> passangers = new ArrayList<>();
public Plane(String name, String color, int spaces) {
this.name = name;
this.color = color;
this.spaces = spaces;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getSpaces() {
return spaces;
}
public void setSpaces(int spaces) {
this.spaces = spaces;
}
@Override
public String toString() {
return "Plane{" +
"name='" + name + ''' +
", color='" + color + ''' +
", spaces=" + spaces +
'}';
}
public void addPassanger(Passanger newPassanger) {
passangers.add(newPassanger);
}
}

我的主页:

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main2 {
public static void main(String[] args){
Passanger p1 = new Passanger("Victor", "Mihai", 28);
Passanger p2 = new Passanger("Alex", "Olan", 25);
Passanger p3 = new Passanger("Vlad", "Pioter", 23);
List<Passanger> passengerList = new ArrayList<>(Arrays.asList(p1, p2, p3));
Plane plane1 = new Plane("Beoing", "red", 200);
plane1.addPassanger(p1);
Plane plane2 = new Plane("Mig", "gray", 2);
plane2.addPassanger(p2);
Plane plane3 = new Plane("jet", "blue", 10);
plane3.addPassanger(p3);
List<Plane> planeList = new ArrayList<>(Arrays.asList(plane1, plane2, plane3));
writePassengersOnPlaneFile(passengerList, planeList);
}
public static void writePassengersOnPlaneFile(List<Passanger> passengerList, List<Plane> planeList) {
for (int i = 0; i < passengerList.size(); i++) {
for (int j = 0; j < planeList.size(); j++) {
try {
//This write all the passangers to each file
FileWriter fileWriter = new FileWriter(planeList.get(j).getName() + ".txt", true);
//here I must take passanger per plane added but I do not get it how,(any hint please?)
fileWriter.write(passengerList.get(i).toString() + "n");
fileWriter.close();
} catch (IOException exception) {
exception.printStackTrace();
}
}
}
}
}

有人能给我一个提示吗?

感谢

您应该首先遍历平面,然后为平面内的乘客列表创建一个getter并遍历这些列表。

public class Plane {
// ...
public List<Passanger> getPassengers() {
return this.passangers;
}
}

您还需要确保为每架飞机创建一个文件写入程序:

public static void writePassengersOnPlaneFile(List<Plane> planeList) {
for (int j = 0; j < planeList.size(); j++) {
Plane plane = planeList.get(j);
try { 
FileWriter fileWriter = new FileWriter(plane.getName() + ".txt", true);
for (int i = 0; i < plane.getPassengers().size(); i++) {
Passanger passenger = plane.getPassengers().get(i);
fileWriter.write(passenger.toString() + "n");
}
fileWriter.close();
} catch (IOException exception) {
exception.printStackTrace();
}
}
}

最新更新