Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am reading a text file using java Scanner.

try {
            while(sc.hasNextLine()) {
                //Read input from file
                inputLine = sc.nextLine().toUpperCase();
                System.out.println(inputLine);
}

The above gives below output while my text file only includes "aabbcc". How to avoid scanner from scanning the garbage? Thanks.

{RTF1ANSIANSICPG1252COCOARTF1265COCOASUBRTF210
{FONTTBLF0FSWISSFCHARSET0 HELVETICA;}
{COLORTBL;RED255GREEN255BLUE255;}
PAPERW11900PAPERH16840MARGL1440MARGR1440VIEWW10800VIEWH8400VIEWKIND0
PARDTX566TX1133TX1700TX2267TX2834TX3401TX3968TX4535TX5102TX5669TX6236TX6803PARDIRNATURAL

F0FS24 CF0 AABBCC}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
270 views
Welcome To Ask or Share your Answers For Others

1 Answer

You are reading a RTF Document. If you want to read the text only you can try reading it into a byte array and parsing out the text using swings 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());

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...