【发布时间】:2015-05-25 18:11:53
【问题描述】:
我正在尝试将哈希集写入文本文件。通常,我对写入 txt 没有任何问题,因为这对我来说很简单。但是,在这种情况下,我绝对一无所知。
关于该类的一些背景知识:它是具有 2 个字段的 ComputerScientist 对象的哈希集;名称和研究领域(是的,我知道我用来填充哈希集的内容不算数,我只是想测试一下我是否可以让它工作)。
我知道使用 filewriter 将字符串保存到 hashset 的基本设置,这是我在 SO 上发现的许多类似问题所处理的,所以这些并没有真正帮助我。
我渴望学习,如果不包括讽刺或侮辱性的 cmets,我将不胜感激。如果已经有类似的问题涉及将对象的哈希集写入 txt 文件,我很抱歉没有看到它。
import java.util.HashSet;
import java.io.FileWriter;
import java.io.IOException;
/**
* Write a description of class ComputerScientistSet here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ComputerScientistSet
{
private HashSet<ComputerScientist> computerScientistSet;
private FileWriter computerScientistWriter;
private String fileName;
/**
* Constructor for objects of class ComputerScientistSet
*/
public ComputerScientistSet(){
computerScientistSet = new HashSet<ComputerScientist>();
fileName = "scientist-names.txt";
setComputerScientistSet();
}
private void setComputerScientistSet(){
computerScientistSet.add (new ComputerScientist("Bob", "Robotics"));
computerScientistSet.add (new ComputerScientist("Tim", "VR"));
computerScientistSet.add (new ComputerScientist("Jake", "Nuclear Fision"));
computerScientistSet.add (new ComputerScientist("Joe", "Snapple"));
computerScientistSet.add (new ComputerScientist("Jane", "Magnets"));
computerScientistSet.add (new ComputerScientist("Mary", "PC"));
}
public void writeNames(){
try{
computerScientistWriter = new FileWriter(fileName, true);
computerScientistWriter.write(computerScientistSet);
computerScientistWriter.close();
}
catch(IOException ioException){
System.out.println("Error.");
}
}
}
更新: 如果我包含以下代码会有所帮助吗?我仍在研究 .write() 行括号中的内容。我的大脑被炸了:/
for (int i = 0; i < computerScientistSet.size(); i++) {
computerScientistWriter.write();
}
【问题讨论】:
-
我以前从未使用过
FileWriter,但它似乎没有接受HashSet的write方法。您可以尝试computerScientistWriter.write(computerScientistSet.toString());,但我不知道您希望HashSet保存的表单。 -
当你问我希望它以什么形式保存时,你的意思是输出文件类型吗?
-
那种。我的意思是你想把它保存在文本文件还是二进制文件中?如果要将其保存在文本文件中,您要将
HashSet保存为什么String?这些问题很难,所以我会选择@maklemenz 的答案。