【问题标题】:Create Instance of a Class and Export to File创建类的实例并导出到文件
【发布时间】:2014-07-23 01:28:39
【问题描述】:

如何创建类实例,然后将其导出到文件?希望你能帮忙。这是我的代码:

import java.io.*;

public class Testing {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Testing t = new Testing();

    String fileName = ("C:/Users/Brandon/Desktop/Java/copy.java");

     try {
            FileWriter fileWriter =
                new FileWriter(fileName);

            BufferedWriter bufferedWriter =
                new BufferedWriter(fileWriter);

            bufferedWriter.write(t);

            bufferedWriter.close();
        }
        catch(IOException ex) {
            System.out.println(
                "Error writing to file '"
                + fileName + "'");

我收到此错误消息:

BufferedWriter 类型中的 write(int) 方法不适用于参数(测试)。

我该如何解决这个问题?

【问题讨论】:

  • serializing 怎么样?
  • 表示Testing 对象不是int,这是参数想要的。

标签: java file class instance


【解决方案1】:

这就是您的代码查找该部分的方式:

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class Testing implements Serializable {

private static final long serialVersionUID = 1L;

public static void main(String args[]) {
    Testing t = new Testing();
    String fileName = new String("copy.ser");
    t.write(t, fileName);
}

public void write(Testing t, String fileName) {

    try {

        FileOutputStream fout = new FileOutputStream("copy.ser");
        ObjectOutputStream oos = new ObjectOutputStream(fout);
        oos.writeObject(t);
        oos.close();
        System.out.println("Done");

    } catch (Exception ex) {
        System.out.println(
            "Error writing to file '"
            + fileName + "'");
    }
}
}

【讨论】:

  • 感谢您的输入,但在文件中,这是它给我的:¬í sr Testing xp 我想要做的是创建一个可以在另一个文件中创建自己的程序,我是开始认为这不是这样做的方法。
  • 这可能会有帮助然后stackoverflow.com/questions/4002462/… 它正在自我更新,但它可以用来创建新文件
【解决方案2】:

您不能只是将 Java 对象写入文件。这样做的过程称为序列化,它对对象提出了某些要求。查看ObjectOutputStreamSerializable 即可开始使用。

【讨论】:

  • 即使是另一个 Java 文件?
  • 绝对将 Java 类的实例导出到 .java(如在 Java 源代码中)文件是没有意义的 - 我认为您可能误解了这里有东西。请进一步解释你想要做什么,也许我们可以解开它。
  • 我正在尝试让它在不同的程序中自行创建
  • 我可以用 FileOutputStream 来写吗 fos = new FileOutputStream("t.tmp"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeInt(12345); oos.writeObject(t)); oos.close();
猜你喜欢
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
  • 1970-01-01
相关资源
最近更新 更多