gpt4 book ai didi

java - InputStreamReader 读取 13 和 10 进行回车。为什么?

转载 作者:行者123 更新时间:2023-12-01 13:36:03 25 4
gpt4 key购买 nike

我正在使用 FileInputStream.read() 方法在霍夫曼算法作业的上下文中解析文本文件。

我的文本文件是这样的(数字只是行号):

1.
2.s
3.
4.

read()方法的返回值分别为:

13,115,10,10

当我使用 FileOutputStream 将这些写回到另一个文本文件中时,换行符不会执行换行。

为什么第一行的换行符总是13而其他的都是10?
我使用的是正确的类还是应该使用不同的流读取器?
当我将换行符写回文件时,为什么换行符不执行换行符?

更新!

好吧,抱歉,阅读不是问题。

首先,这是一些代码:

FileOutputStream fos = new FileOutputStream(fileOut);
fos.write(115); //s
fos.write(13); //newline
fos.write(115); //s
fos.write(10); //newline
fos.write(10); //newline

当我在记事本中打开文件时,我看到:

1.ss
2.

我想我必须对 int 变量(或本例中的常量)做一些事情,但我不知道做什么。

最佳答案

回车符(“\r”、CR、ASCII 13)和换行符(“\n”、LF、ASCII 10)都是有效的行结束符,分别是旧 Macintoshes 和 Unixes 上使用的约定。

Windows 使用回车符后跟换行符(“\r\n”、CRLF、ASCII 13、10)。

参见维基百科:http://en.wikipedia.org/wiki/Newline

创建文本文件的人可能有意或无意地在具有不同行结束约定的操作系统上编辑文件,从而使用了不同的行结束。

如果您想按行读取文件,您可能需要使用 BufferedReader 包装 InputStreamReader:

Reader in = new BufferedReader(new InputStreamReader(fileInputStream, encoding));

in.readLine();

关于java - InputStreamReader 读取 13 和 10 进行回车。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com