我对读取和写入二进制数据的参数感到很困惑。
当我读写包含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"
的含义是什么?
答案 0 :(得分:0)
I / O库可能非常混乱,因为不同的通信有不同的需求。该体系结构旨在保持尽可能多的共同点。各种子类和包装器类都添加了特征(例如缓冲)或处理(例如文本编码/解码或数据类型转换)。
(有时,由于每个类添加的内容很少,架构可能过于分散,需要两到三个类来完成非常普通的事情。常用的第三方库可以使其变得更容易。)
以这种方式进行思考,如果您拥有的对象在某种程度上很尴尬,请在库中找到该类,从而可以更轻松地以所需的方式使用它。您尚未显示任何可做任何事情的代码,因此我无法指出使用您提到的类的特定优势。
“ testdata”将是操作系统以“文件”形式呈现给用户Java的名称。在通常情况下,它是文件的名称,将在程序的当前工作目录中。哪个目录可能取决于您的用户如何启动程序。 (也许您希望文件名带有扩展名。“
提示:使用显示JavaDoc的IDE
提示:使用允许重构的IDE(尤其是提取局部变量)。这使您有机会提取出使您感到困惑的表达式并为其命名。