0

我有一个自定义类的对象。我需要将其转换为字符串,以便将其写入文件。有没有办法解决这个问题?

感谢帮助。

4

3 回答 3

1

您不能将自定义类String自动转换为。系统无法知道您希望如何String对其进行格式化,您究竟想在其中做什么等等。

您必须在自定义类中手动实现一个方法,该方法返回对象的文本解释。通常你会覆盖一个名为toString(). 如果您向某些方法提供类的实例,则通常会自动调用此方法。假设如果你这样做System.out.println(instance)了,那么instance'toString()方法会被自动调用。

我不知道你的自定义类是什么。但是,假设它类似于Person具有成员变量的类,String name并且int age. 那么toString()类中定义的方法可能看起来像这样:

@Override
public String toString() {
    return "Name: " + name + ", age: " + age;
}

这将提供类似“姓名:某个姓名,年龄:30”的输出。

于 2013-05-14T12:42:29.803 回答
0

尝试,使用objectname.toString()方法。

于 2013-05-14T12:33:14.890 回答
0

将序列化对象转换为字符串并将字符串转换为对象

public static String beanToString(Object object) throws IOException {

    ObjectMapper objectMapper = new ObjectMapper();
    StringWriter stringEmp = new StringWriter();
    objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
    objectMapper.writeValue(stringEmp, object);
    return stringEmp.toString();
}

public static <T> T stringToBean(String content, Class<T> valueType) throws IOException {
    return new ObjectMapper().readValue(content, valueType);
}

并将对象保存到文件中

FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(this);
os.close();
fos.close();
Loading (w/o exception handling code):

FileInputStream fis = context.openFileInput(fileName);
ObjectInputStream is = new ObjectInputStream(fis);
SimpleClass simpleClass = (SimpleClass) is.readObject();
is.close();
fis.close();
于 2015-08-14T09:08:05.667 回答