Java pdf文件传输

Java pdf文件传输,java,file,udp,file-transfer,Java,File,Udp,File Transfer,我已经用java中的udp套接字实现了传输任何txt文件的程序。我正在使用printwriter来写和读。但是使用它,我不能传输除txt以外的任何文件(比如我想传输pdf)。在这种情况下,应该怎么做。我正在使用下面的函数进行文件写入 Output_File_Write = new PrintWriter("dummy.txt"); Output_File_Write.print(new String(p.getData())); AFAIKPrintWriter用于文本。引自 将对象的格式化

我已经用java中的udp套接字实现了传输任何
txt文件的程序。我正在使用
printwriter
来写和读。但是使用它,我不能传输除txt以外的任何文件(比如我想传输pdf)。在这种情况下,应该怎么做。我正在使用下面的函数进行文件写入

Output_File_Write = new PrintWriter("dummy.txt");
Output_File_Write.print(new String(p.getData())); 

AFAIK
PrintWriter
用于文本。引自

将对象的格式化表示形式打印到文本输出流。此类实现PrintStream中的所有打印方法。它不包含写入原始字节的方法,对于原始字节,程序应该使用未编码的字节流


为了能够发送二进制数据,您需要对其使用apt API,例如,AFAIK
PrintWriter
用于文本。引自

将对象的格式化表示形式打印到文本输出流。此类实现PrintStream中的所有打印方法。它不包含写入原始字节的方法,对于原始字节,程序应该使用未编码的字节流


为了能够发送二进制数据,您需要对其使用apt API,例如
PrintStream

writer/printswriter用于编写文本文件。它们获取(基于Unicode的)字符数据,并使用默认字符编码(或指定的编码)对其进行编码,然后将其写入文件

PDF文档(从网络获取)是二进制格式的,因此需要使用FileOutputStream来编写文件


还有一点需要注意的是,您正在尝试使用UDP传输文档。UDP不保证发送的数据报将全部到达,或者它们将以与发送相同的顺序到达。除非您总是能够将整个文档放入单个数据报中,否则您将不得不做大量的工作来检测数据报是否已丢失或以错误的顺序到达。。。并采取补救措施


使用TCP要简单得多。

Writer/PrintWriter用于编写文本文件。它们获取(基于Unicode的)字符数据,并使用默认字符编码(或指定的编码)对其进行编码,然后将其写入文件

PDF文档(从网络获取)是二进制格式的,因此需要使用FileOutputStream来编写文件


还有一点需要注意的是,您正在尝试使用UDP传输文档。UDP不保证发送的数据报将全部到达,或者它们将以与发送相同的顺序到达。除非您总是能够将整个文档放入单个数据报中,否则您将不得不做大量的工作来检测数据报是否已丢失或以错误的顺序到达。。。并采取补救措施


使用TCP要简单得多。

这个问题与斯蒂芬的权利有关。实现基于UDP的文件传输绝非玩笑;您需要在其上编写一个完整的可靠性层,以使其正常工作。对于偶尔小文件的简单传输,TCP是唯一的方法。Stephen说得对。实现基于UDP的文件传输绝非玩笑;您需要在其上编写一个完整的可靠性层,以使其正常工作。对于偶尔小文件的简单传输,TCP是唯一的选择。