gpt4 book ai didi

java - 将数组写入输出文件

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:45 24 4
gpt4 key购买 nike

我是 Java 新手,我需要有关我的方法的帮助。

所以我需要创建 flagOverdueOwners(CarOwner[] inArray) 方法,该方法为注册已过期的车辆生成并返回一个数组。这被定义为超过 12 个月的注册,基于当前的 REG_MONTH(4)和 REG_YEAR(2014)

这是我在 RegistrationMethods 类中的 flagOverdueOwners 方法:

public class RegistrationMethods implements Serializable{

final int REG_MONTH = 4;
final int REG_YEAR = 2014;
public CarOwner[] flagOverdueOwners(CarOwner[] inArray)
{


// insert code to compare that are earlier than 4/2013

temp = inArray;



return temp;}

}

这是我的主要方法:

public static void main (String [] args)
{
PrintWriter outputStream = null;

outputStream = new PrintWriter (new FileOutputStream ("output.txt", true));
CarOwner arr[] = dmv.flagOverdueOwners(ItStateCopy)
outputStream.println("\nOwners with Expired Registration");

for (int i = 0 ; i < arr.length ; i++)
{
outputStream.println(arr[i]);
}


outputStream.close();
}

我的output.txt应该包含:

注册过期的所有者

塔斯马尼亚恶魔 STU-789 10/2012

西尔维斯特猫 NQR-456 1/2013

优胜美地山姆 FGH-123 3/2013

(还有很多 2013 年 4 月之后的列表)

ps.这是我的 CarOwner 类:

public class CarOwner extends Citizen implements CarOwnerInterface, Serializable, Comparable
{
private String license;
private int month, year;

public CarOwner()
{
super();
license = "Not Assigned";
month = 0;
year = 0;
}

public CarOwner(String inFirst, String inLast, String inLicense, int inMonth, int inYear)
{
super(inFirst, inLast);
license = inLicense;
month = inMonth;
year = inYear;
}

public void setLicense(String inLicense)
{
license = inLicense;
}

public String getLicense()
{
return license;
}

public void setMonth(int inMonth)
{
month = inMonth;
}

public int getMonth()
{
return month;
}

public void setYear(int inYear)
{
year = inYear;
}

public int getYear()
{
return year;
}

public int compareTo(Object o)
{
if ((o != null) && (o instanceof CarOwner))
{
CarOwner otherOwner = (CarOwner) o;
if (otherOwner.getYear() > getYear())
return -1;
else if (otherOwner.getYear() < getYear())
return 1;
else if (otherOwner.getMonth() > getMonth())
return -1;
else if (otherOwner.getMonth() < getMonth())
return 1;
else
return 0;
}

return -1;
}

public String toString()
{
String str;

str = getLastName() +" " + getFirstName() + "\t\t" + license + "\t\t" + month + "/" + year;

return str;
}
}

知道我应该如何编码来比较日期是否早于 4/2013 吗?

任何帮助或建议将不胜感激!

最佳答案

你必须编写序列化和反序列化方法。序列化方法会将所有属性转换为字节,反序列化方法将使用它来构造对象。

但是,java中有更简单的方法。您已经为 CarOwner 实现了 Serialized 接口(interface),并使用 ObjectOutputStream 将其写入文件,并使用 ObjectInputStream 从文件中读取它。所以

 ObjectOutputStream outputStream = new ObjectOutputStream (new FileOutputStream ("output.txt", true));

CarOwner arr[] dmv.flagOverdueOwners(ItStateCopy)
for (int i = 0 ; i < arr.length ; i++)
{
outputStream.writeObject(arr[i]);
}

关于java - 将数组写入输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com