【问题标题】:Writing LinkedList into text file via ObjectOutputStream but output is garbage通过 ObjectOutputStream 将 LinkedList 写入文本文件,但输出是垃圾
【发布时间】:2017-10-02 09:09:15
【问题描述】:

当我尝试将 Linkedlist 的内容写入文本文件时出现输出错误

    try {
        FileOutputStream out = new FileOutputStream("ValidMovesMatrix.txt");
        ObjectOutputStream oout = new ObjectOutputStream(out);
        oout.writeObject("--+ This will show all the VALID moves A* algorithm has taken to come up with the solution +---");
        oout.writeObject(" ");
        for (int matrixIdx = 0; matrixIdx < matrixStack.size(); matrixIdx++) {
            Object matrixShow = matrixStack.get(matrixIdx);
            oout.writeObject(matrixShow);
        }
        oout.close();
    } catch (Exception ex) {
        System.out.println("Output error");
    }

它没有打印我的链接列表的内容,并且输出的文本文件包含以下垃圾:

¬í t _--+ This will show all the VALID moves A* algorithm has taken to come up with the solution +---t  {sr  java.io.NotSerializableException(Vx ç†5  xr java.io.ObjectStreamExceptiondÃäk9ûß  xr java.io.IOExceptionl€sde%ð«  xr java.lang.ExceptionÐý>;Ä  xr java.lang.ThrowableÕÆ5'9w¸Ë L causet Ljava/lang/Throwable;L 
detailMessaget Ljava/lang/String;[ 
stackTracet [Ljava/lang/StackTraceElement;L suppressedExceptionst Ljava/util/List;xpq ~     t MapStateur [Ljava.lang.StackTraceElement;F*<<ý"9  xp   sr java.lang.StackTraceElementa    Åš&6Ý… I 
lineNumberL declaringClassq ~ L fileNameq ~ L 
methodNameq ~ xpÿÿÿÿt java.io.ObjectOutputStreampt writeObject0sq ~ 
ÿÿÿÿq ~ pt writeObjectsq ~ 
   bt 
AlgoSolvert AlgoSolver.javat backtrackMovessq ~ 
   'q ~ q ~ t searchsq ~ 
   t 
ProjectOnet ProjectOne.javat 
acceptArgssq ~ 
    q ~ q ~ t mainsr &java.util.Collections$UnmodifiableListü%1µìŽ L listq ~ xr ,java.util.Collections$UnmodifiableCollectionB €Ë^÷ L ct Ljava/util/Collection;xpsr java.util.ArrayListxÒ™Ça I sizexp    w    xq ~ $x

【问题讨论】:

  • 你应该使类可序列化或自己编写一些代码以使其可打印。它实际上是在转储它的内存。
  • 我该怎么做?

标签: java fileoutputstream objectoutputstream


【解决方案1】:

ObjectOutputStream 以序列化字节码格式写入对象,以后可以重新读取。

如果您想要文本输出,请使用 PrintStreamPrintWriter 并实现 Matrix.toString() 以将每个 Matrix 写入格式化文本。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-08-18
  • 2018-09-12
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
相关资源
最近更新 更多