我在readfile()下面有java函数来读取.htm文件
private String readfile(String inputDoc) throws IOException {
FileInputStream fis = null;
InputStreamReader isr = null;
String text = null;
//open input stream to file
fis = new FileInputStream(inputDoc);
isr = new InputStreamReader(fis, "UTF-8");
StringBuffer buffer = new StringBuffer();
int c;
while( (c = isr.read()) != -1 ) {
buffer.append((char)c);
}
text = buffer.toString();
isr.close();
return text;
}
Run Code Online (Sandbox Code Playgroud)
以下是输入文档的示例代码段
<?xml version="1.0" encoding="utf-8"?><html>
<head>
Run Code Online (Sandbox Code Playgroud)
由于某种原因,从readfile()返回的文本字符串是 <?xml version="1.0" encoding="utf-8"?><html>\r\r\n<head>
但我希望它是 <?xml version="1.0" encoding="utf-8"?><html>\r\n<head>
这里概述了windows\r \n中的换行符char
我在Windows 7上的IntelliJ Idea中运行了上述功能.(IDEA默认编码设置为UTF-8)
有谁知道为什么我从换行的readfile(String inputDoc)函数得到这个奇怪的结果
小智 6
当您编写时\n,它会\r\n在Windows上扩展为可移植性.这样,无论您运行什么操作系统,都可以获得正确的结果而无需额外的代码:\r\n在Windows上,或仅\n在Unix上.看起来你正在以二进制模式读取输入(在文本模式下,相同的扩展发生在反向:\r\n输入中的任何变为公正\n,所以你再一次不必担心操作系统),所以你看到了\r.然后,当你写下\n它时,它会扩展到\r\n,留下两个\rs.
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |