我正在为Android聊天室应用。我阅读不同的教程;其中一些使用PrintWriter发送数据,其中一些使用DataOutputStream。这两者有什么区别?哪一个更适合聊天应用?什么是为PrintWriter和DataOutputStream之间的区别是什么?
回答
从Java文档
甲DataOutputStream让应用程序写基本Java数据类型在便携式方式的输出流。然后应用程序可以使用一个数据输入流中读取的数据回。格式化对象的表示
PrintWriter打印到一个文本输出流。该类实现PrintStream中的所有打印方法。它不包含写入原始字节的方法,程序应使用未编码的字节流。
在一个句子的区别是:
OutputStreams都是为了二进制数据。作家(包括PrintWriter)用于文本数据
用粗体字显示摘要;) – Sello
DataOutputStream
和PrintWriter
都是java.io中的两个类。
class DataOutputStream extends FilterOutputStream implements DataOutput {
}
Javadoc
说
“A数据输出流允许应用程序写基本Java数据类型到输出流中的可移植的方式。然后应用程序可以使用一个数据输入流中读取的数据早在。”
public class PrintWriter extends Writer {
}
打印格式化对象的表示到一个文本输出流。该类实现PrintStream中的所有打印方法。它不包含写入原始字节的方法,程序应使用未编码的字节流。
PrintWriter
将所有内容都转换为Ascii格式。例如:
PrintWriter pw = new PrintWriter(new File("./test.txt"));
for (Integer word: words) {
pw.println(word);
}
在这个代码块中,通过调用pw.printin(word)
;不管什么类型的字(这里是整数),程序都会将其转换为ASCII格式并存储它。因此,当我们希望检索存储的数据,并看了一遍,程序已经做另一种类型从文本中切换到原来的格式! - 在时间效率方面不好! 举例来说,如果这个词是一个整数,即保存到一个文件中(这是现在文本)后,程序有其格式从string更改为整数时,它会检索!
但是,DataOutPutStream
让一切通过保持数据类型比较容易,因为它的数据存储到字节。所以,当我们运行波纹块时,将存储的整数编程为字节,并且当它想要检索它时不需要任何类型的改变。它存储为整数并且也以整数形式检索。所以,它快得多!
DataOutputStream dos = new DataOutputStream(
new FileOutputStream(new File("test2.txt")));
for (Integer word: words) {
dos.writeUTF(word);
}
dos.close();
- 1. DataOutputStream与printwriter有什么区别?
- 2. ++和:haskell之间的区别是什么?
- 3. $(())和expr之间的区别是什么?
- 4. “$ | ++”和“$ | = 1”之间的区别是什么
- 5. $和$ .fn之间的区别是什么?
- 6. $(...)和`...`之间的区别是什么
- 7. .equals()和==之间的区别是什么?
- 8. [undefined]和[,]之间的区别是什么?
- 9. “\”和“\。”之间的区别是什么?
- 10. 什么是为什么request.env ['CONTENT_TYPE']和request.content_type之间有什么区别?
- 11. TVF/UDF之间的区别是什么
- 12. [EmailPasswordAuthProvider,EmailAuthProvider]之间的区别是什么
- 13. System.Linq.Enumerable.WhereListIterator&System.Linq.Enumerable.WhereSelectListIterator之间的区别是什么?
- 14. 区别:%% a和%variable%变量之间的区别是什么?
- 15. JspWriter和PrintWriter有什么区别?
- 16. MVC和MVVM之间的区别和相似之处是什么?
- 17. “严格”和“松散”行为之间的区别是什么?
- 18. lock_guard之后lock()和guard()之间的区别是什么
- 19. Jest Mock功能和Sinon间谍之间的区别是什么
- 20. 正常运行时间和uptime_since_flush_status之间的区别是什么
- 21. 什么是UIGestureRecognizer的使用和UITouch和UIGestureRecoginzer之间的区别
- 22. “。”和“。”之间的区别是什么?和[System.ENVIRONMENT] :: PowerShell中的CurrentDirectory?
- 23. “;”和“;”之间的区别是什么?和T-SQL中的“GO”?
- 24. 是什么区别:
- 25. 什么之间的区别〜^和Git中
- 26. 什么@android之间的区别:和android:
- 27. PHPUnit和WebDriver - value()和keys()之间的区别是什么
- 28. 线和三网,魔杖和triand之间的区别是什么?
- 29. a + = b和a = + b之间的区别是什么,a ++和++ a?
- 30. configure.ac和configure.in以及Makefile.am和Makefile.in之间的区别是什么?
当您谈论聊天应用程序时,您是指写信给屏幕或通过网络发送数据? – hexafraction
发送通过网络进行通信的数据,而不是写在屏幕上。 – pooyan
Javadoc的哪个部分不理解? – EJP