Вы используете сериализацию Java, которая записывает объект в свой двоичный формат, а не в текст. Если вам нужен текстовый формат, я бы посоветовал вам использовать JSON с такой библиотекой, как jackson-databind .
И вот рабочий пример для вашего удобства (который записывает оба текстафайл и считывает обратно из текстового файла в объект):
Main.class
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) throws JsonGenerationException, JsonMappingException, FileNotFoundException, IOException {
ObjectMapper om = new ObjectMapper();
Test test = new Test("Short name of test","Full name of test");
om.writeValue(new FileOutputStream("test.json"), test);
Test readValue = om.readValue(new FileInputStream("test.json"), Test.class);
System.out.println(readValue.getShortName());
System.out.println(readValue.getFullName());
}
}
Test.class
import java.io.Serializable;
public class Test implements Serializable{
private static final long serialVersionUID = 1L;
private String shortName;
private String fullName;
public Test() {
}
public Test(String shortName, String fullName) {
this.shortName=shortName;
this.fullName=fullName;
}
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
@Override
public String toString() {
return "Name:" + shortName + "\nFullName: " + fullName;
}
}
Обратите внимание, что я добавилконструктор по умолчанию для Test.class, чтобы Джексон мог его создать при десериализации из json.