java I / O尝试使用资源获取二进制数据参数?

时间:2018-08-18 10:16:23

标签: java io

我对读取和写入二进制数据的参数感到很困惑。 当我读写包含ASCII字符的字节时,我知道格式类似于try(FileInputStream fin = new FileInputStream(args[0]))。它主要是控制台参数。

但是我看到尝试读取和写入二进制数据的资源

try(DataInputStream dataIn = new DataInputStream(new FileInputStream("testdata")))

try(DataOutputStream dataOut = new DataOutputStream(new FileOutputStream("testdata"))

new FileInputStream("testdata")为什么这样写?为什么将其创建为内部对象?"testdata"的含义是什么?

1 个答案:

答案 0 :(得分:0)

I / O库可能非常混乱,因为不同的通信有不同的需求。该体系结构旨在保持尽可能多的共同点。各种子类和包装器类都添加了特征(例如缓冲)或处理(例如文本编码/解码或数据类型转换)。

(有时,由于每个类添加的内容很少,架构可能过于分散,需要两到三个类来完成非常普通的事情。常用的第三方库可以使其变得更容易。)

以这种方式进行思考,如果您拥有的对象在某种程度上很尴尬,请在库中找到该类,从而可以更轻松地以所需的方式使用它。您尚未显示任何可做任何事情的代码,因此我无法指出使用您提到的类的特定优势。

“ testdata”将是操作系统以“文件”形式呈现给用户Java的名称。在通常情况下,它是文件的名称,将在程序的当前工作目录中。哪个目录可能取决于您的用户如何启动程序。 (也许您希望文件名带有扩展名。“

提示:使用显示JavaDoc的IDE

提示:使用允许重构的IDE(尤其是提取局部变量)。这使您有机会提取出使您感到困惑的表达式并为其命名。