【问题标题】:sending a file using DataOutputStream in java在 java 中使用 DataOutputStream 发送文件
【发布时间】:2011-11-28 19:52:45
【问题描述】:

我正在尝试构建一个将文件大小和内容发送到服务器的客户端。

我正在尝试使用 DataOutputStream。

我假设我需要打开文件并获取文件大小并读取内容并发送它。

但我不确定如何实现这些,因为我对 java 很陌生...

谁能帮我解决这个问题?

谢谢!

【问题讨论】:

    标签: java fileinputstream datainputstream dataoutputstream


    【解决方案1】:

    这很简单,但是代码写起来有点长,听起来像功课。

    我可以给你一些指示。

    只要打开文件,使用File类的long length()方法获取大小,使用DataOutputStream类的writeLong(long)方法将长度发送给服务器。然后只需一次读取文件一个块,并使用DataOutputStreamwrite(byte[]) 方法发送每个块。

    要一次读取一个文件块,您只需创建一个FileInputStream 并使用它的int read(byte[]) 方法。注意不要假设这个方法会填满整个缓冲区,因为不能保证这样做。阅读文档!

    【讨论】:

    • 我明白了。打开文件之前需要指定路径吗?例如。 File file = new File(filename),filename需要有路径吗?因为每次我尝试这样做时,它都不会打开..
    • 视情况而定。如果您没有指定完整路径,那么它将搜索从 CWD(当前工作目录)开始的文件,在大多数情况下,当您运行 java 命令行应用程序时,该目录是您当前正在使用终端的目录. .jar 或 .class 文件的目录不相关,但可能与 CWD 相同。
    • 我其实是在通过eclipse编译运行的。并且我要打开的文件与我正在编写的 .java 文件位于同一目录中。它们位于 /src 目录中。事实上,所有的 .class 文件都转到名为 /bin 的不同目录。我假设文件应该在当前目录中,对吗?还是我错了?非常感谢您的帮助
    • 工作目录是srcbin 的父目录。建议:在您熟练使用命令行工具和语言本身之前,请避免使用 Eclipse 等环境。需要学习一些基础知识:) 抱歉!
    • 非常感谢!!这很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    相关资源
    最近更新 更多