gpt4 book ai didi

java - 从 Java.io.Reader 获取有意义的文本

转载 作者:搜寻专家 更新时间:2023-10-31 08:07:56 25 4
gpt4 key购买 nike

我有一个正在编写的程序,我正在使用另一家公司的库从他们的网站下载一些报告。我想在将它们写入文件之前解析这些报告,因为如果它们符合某些条件,我想忽略它们。

问题是,他们的方法,称为 download() 返回一个 java.io.Reader。我唯一可用的方法是

int read(char[] cbuf);

打印这个返回的数组给我无意义的字符。我希望能够识别我正在使用的字符集或将其转换为字节数组,但我不知道该怎么做。我试过了

//retrievedFile is my Reader object
char[] cbuf = new char[2048];
int numChars = retrievedFile.read(cbuf);
//I've tried other character sets, too
new String(cbuf).getBytes("UTF-8");

我不敢向更有用的读者低声下气,因为我不确定它是否有效。有什么建议吗?

编辑

当我说它打印出“无意义的字符”时,我并不是说它看起来像 Jon Skeet 给出的示例。这真的很难描述,因为我现在不在我的机器旁,但我认为这是一个编码问题。这些字符似乎具有类似于报告外观的缩进和结构。我会在周二回来后立即尝试这些建议(我只是一名实习生,所以我没有为设置远程帐户或其他任何事情而烦恼)。

最佳答案

试试这个:

BufferedReader in = new BufferedReader(retrievedFile);
String line = null;
StringBuilder rslt = new StringBuilder();
while ((line = in.readLine()) != null) {
rslt.append(line);
}
System.out.println(rslt.toString());

不要将 Reader 强制转换为任何类,因为您不知道它的真实类型。相反,使用 BufferedReader 并将 Reader 传递给它。 BufferedReader 将 java.io.Reader 的任何子类作为参数,因此可以节省使用它。

关于java - 从 Java.io.Reader 获取有意义的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8683943/

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