Java 我收到了意想不到的短信
我的text.txt文件只包含三行文本,这是我读取三行文本的代码Java 我收到了意想不到的短信,java,Java,我的text.txt文件只包含三行文本,这是我读取三行文本的代码 package textFile; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class app { public static void main(String [] args) throws FileNotFoundException { String location =
package textFile;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class app {
public static void main(String [] args) throws FileNotFoundException {
String location = "/Users/li/Desktop/all files/text.rtf";
File file = new File(location);
Scanner text = new Scanner(file);
while(text.hasNextLine()) {
System.out.println(text.nextLine());
}
text.close();
}
}
我明白了
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\
tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 Line 1 text\
Line 2 text\
Line 3 text}
这是因为您使用的是RTF文件。如果改用atext文件,它将产生预期的3行。但是,您可以像这样进一步改进代码
try (BufferedReader br = new BufferedReader(new FileReader("C:\\data\\sample.rtf"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
你可以试试这个。它还支持图像和文本。您正在阅读RTF文档。如果只想读取文本,可以尝试将其读入字节数组,并使用rtfeditorkit解析文本
Path path = Paths.get("path/to/file");
byte[] data = Files.readAllBytes(path);
RTFEditorKit rtfParser = new RTFEditorKit();
Document document = rtfParser.createDefaultDocument();
rtfParser.read(new ByteArrayInputStream(data), document, 0);
String text = document.getText(0, document.getLength());
你能告诉我们文本文件的内容吗?可能的副本是读一个RFT文件而不是TXT文件都是一样的吗?如果这是你从一个三行文本的富文本格式(RTF)文件中得到的,那么你就认为自己是幸运的。在MS Word中打开新文档并输入Hello World,然后将文档另存为.rtf。现在在记事本中查看文件。看看你是否能在没有搜索机制的混乱中找到Hello World。是的……沃尔多,大约是下山的三分之一。请接受对你解决问题最有帮助的答案。它有助于未来的读者。如果答案没有帮助,请在下面留下评论。因此海报可以相应地更新它们。