【问题标题】:when to use byte stream or character stream to read/write text何时使用字节流或字符流来读/写文本
【发布时间】:2012-09-01 22:20:50
【问题描述】:

我是java新手。

我知道必须使用字符流来读/写字符,使用字节流来读/写字节。

不过,我也可以使用字节流来读/写字符。

我还了解,在使用国际通用的应用程序时,首选字符流。

  1. 您能否就在读取/写入“文本”数据时何时使用字符流和字节流提供一些建议?

  2. word/excel/pdf文档中的文字可以用字符流简单读取吗?

  3. 在读取外部创建的文本数据时,何时以及如何知道何时使用 UTF-8/Western/ISO 等字符编码? (对不起,这是一个模糊的问题......但请帮忙)

提前致谢。

【问题讨论】:

标签: java character byte


【解决方案1】:
  1. 当您知道数据是文本时,请使用 Readers 和 Writers。否则使用流。

  2. 没有。您不知道数据是文本,请参见 (1)。

【讨论】:

    【解决方案2】:

    通常,如果您只想读取这样的文件并将其发送到其他地方,或者guardrlo 总是最好用于字节。

    对于处理字节的文件建议使用缓冲区,例如“BufferedOutputStream”。

    另一方面,如果您需要使用文本来阅读内容,则始终建议您知道“编码”您将获得。最通用的选项是“BufferedReader”,使用此选项您将使用具有 java 的“encode”默认值。

    最后评论说你不能直接读取文件 Work、Excel 等...因为它们已格式化,你需要允许你阅读的工具,我使用“Apache POI”。

    问候,

    【讨论】:

    • @Manu....只是为了确保我做对了..从外部源接收或发送到外部源的任何文本文件都可以使用字节流写入/读取?但是在读取或写入字符为字节时丢失字符的问题(对于需要 2 个字节的字符)
    • 不太明白你的问题,如果你以字节读取文件并以字节发送,文件发送完全相同,如果你以字符读取并以字符发送(读者>作家) 只要“编码”是文件被创建就没有损失,问候,
    • 实际上我从您的评论中了解到,一个“必须”使用字节流只是因为从外部源接收文本文件(字符文本)或发送到外部源。
    • 是的,如果不是你必须处理数据是最推荐的,但你必须发送一个字符串或读取它有时你必须知道你的“编码”,然后推荐读者或作家跨度>
    猜你喜欢
    • 2019-09-02
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多