在println中显示文件名

时间:2011-11-29 20:45:05

标签: java file

我试图弄清楚如何使用文件对象属性在println中显示我的文件名以下代码。我是新手,可以在正确的方向上使用一些指导。想法是在控制台上显示“Excercise19_2.txt”。我希望这能让每个人都清楚。谢谢你的帮助!

package chp19_1_b;
import java.io.*;

public class Excercise19_1_b {
    public static void main(String[] args) throws ClassNotFoundException, IOException {
        int[] numbers = {1, 2, 3, 4, 5};

        ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("Excercise19_2.txt"));

        output.writeObject(numbers);
        output.writeObject(new java.util.Date());
        output.writeDouble(5.5);

        output.close();

        ObjectInputStream input = new ObjectInputStream(new FileInputStream("Excercise19_2.txt"));

        //Print FileName
        ;

        int[] newNumbers = (int[])(input.readObject());

        //Print array
        System.out.println("Integers: ");
        for (int i = 0; i < newNumbers.length; i++)
            System.out.println(newNumbers[i] + ", ");

        //Print date
        java.util.Date date = (java.util.Date)(input.readObject());
        System.out.println("DateTime: " + date);


        //Print double
        double number = input.readDouble();
        System.out.println("Double: " + number);


        input.close();
    }
}

1 个答案:

答案 0 :(得分:3)

您可能希望创建实际的File,并根据您的需要使用file.getCanonicalPath().getAbsolutePath之类的内容。直接从路径创建FileInputStream会绕过查询实际文件的能力。

您仍然可以使用File-based constructor创建FileInputStream

至于@Kane的观点,你有文件名 - 如果你只想复制你当前正在使用的东西(即你不关心实际的路径,只需要filename),将其重构为局部变量:

String filename = "Exercise19_2.txt";
ObjectInputStream input = new ObjectInputStream(new FileInputStream(filename));
out.println(filename);

或者将它作为一个类常量。