Показать имя файла в println - PullRequest
0 голосов
/ 30 ноября 2011

Я пытаюсь выяснить, как отобразить имя моего файла в распечатке следующего кода, используя свойства объекта файла.Я новичок в этом и мог бы использовать некоторые указания в правильном направлении.Идея состоит в том, чтобы на консоли отображался «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 Ответ

3 голосов
/ 30 ноября 2011

Вы, вероятно, захотите создать фактическую File и использовать что-то вроде file.getCanonicalPath() или .getAbsolutePath в зависимости от ваших потребностей.Создание FileInputStream непосредственно из пути обходит возможность запроса фактического файла.

Вы все еще можете создать FileInputStream, используя конструктор на основе File .

К слову, @ Kane, у вас есть имя файла прямо здесь - если вы просто хотите скопировать то, что используете в данный момент (то есть вам не нужен путь фактический , просто имя файла), преобразовать его в локальную переменную:

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

Или иметь его как константу класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...