我有一个自定义类的对象。我需要将其转换为字符串,以便将其写入文件。有没有办法解决这个问题?
感谢帮助。
您不能将自定义类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”的输出。
尝试,使用objectname.toString()
方法。
将序列化对象转换为字符串并将字符串转换为对象
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();