如何获取此OutputStream的绝对路径位置?

时间:2014-12-08 14:26:50

标签: java

byte bWrite [] = {11,21,3,40,5};
OutputStream os = new FileOutputStream("test.txt");
System.out.println("Created successfully"+os.getAbsolutePath());

这是我的代码。我必须获取“test.txt”的位置。请查看是否有其他实现方式...?

4 个答案:

答案 0 :(得分:6)

FileOUtputStream也有File构造函数,因此您可以使用它。

File out = new File("test.txt");

OutputStream os = new FileOutputStream(out);
System.out.println("Created successfully "+out.getAbsolutePath());

答案 1 :(得分:3)

在之后获取此信息您只有一个OutputStream变量对我来说感觉不对。毕竟,根本不能保证OutputStream正在写入文件 - 它可以是ByteArrayOutputStream或写入套接字。您可以在创建FileOutputStream之前获取此信息。例如:

File file = new File("test.txt");
System.out.println("Absolute path: " + file.getAbsolutePath());

或者

Path path = Paths.get("text.txt");
System.out.println("Absolute path: " + path.toAbsolutePath());

...然后根据它创建FileOutputStream

答案 2 :(得分:0)

为什么不把你想要的绝对路径作为FileOutputStream的构造函数的参数?

答案 3 :(得分:0)

当我使用 FileOutputStream 尝试您的代码时,它根本不起作用。但是我用下面的代码成功了。

OutputStream os = openFileOutput("test.txt", MODE_PRIVATE);
System.out.println("Created successfully" + getFilesDir().getAbsolutePath() + "/test.txt");

getFilesDir().getAbsolutePath() 似乎获取 openFileOutput 的默认位置的绝对路径。