我试图弄清楚如何使用文件对象属性在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();
}
}
答案 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);
或者将它作为一个类常量。