文件读取器IO读取文本文件

时间:2014-02-14 07:28:40

标签: java file input output filereader

我有一项任务要求我从文本文件中读取代码。有人知道我的代码会出现什么问题吗?

它不输出文本本身,而是输出额外的字符:

{\ rtf1 \ ansi \ ansicpg1252 \ cocoartf1187 \ cocoasubrtf390 {\ fonttbl \ f0 \ fswiss \ fcharset0 Helvetica;} {\ colortbl; \ red255 \ green255 \ blue255;} \ margl1440 \ margr1440 \ vieww10800 \ viewh8400 \ viewkind0 \ pard \ tx720 \ tx1440 \ tx2160 \ tx2880 \ tx3600 \ tx4320 \ tx5040 \ tx5760 \ tx6480 \ tx7200 \ tx7920 \ tx8640 \ pardirnatural \ f0 \ fs24 \ cf0 ana \ nan \ stop \ pots}

何时应该输出:

ana

停止

继承代码:

package anagram1;

import java.io.FileReader; //Access file systems and allows buffered reader
                        //to read
import java.io.BufferedReader; //Scanner

import java.util.Scanner;

public class Anagram1 {


public static void main(String[] args) throws Exception
{
    String path;
    Scanner prompt = new Scanner(System.in); 
    System.out.println("Enter file path.");
    path = prompt.nextLine();


    FileReader file = new FileReader(path);  //here is where the file path is inserted
    BufferedReader reader = new BufferedReader(file);


    String text = ""; //stores what is inside file
    String line = reader.readLine(); //keeps reading line after line of string given
    while (line != null)
    {
        text += line;
        line = reader.readLine();

    }

    System.out.println(text);
}
}

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

文件阅读器不会神奇地理解RTF格式,也不会神奇地删除所有格式化标记。它从文件中读取字符,而不关心这些字符代表什么。

如果您希望能够执行此操作,则需要RTF文档解析器。或者您需要将文件设为纯文本文件,而不是RTF文档。

答案 1 :(得分:0)

修改

您的文本文件似乎不仅包含预期的四行,还包含其他代码。

以前的内容

你确定你的文本文件只包含这四个字符串并且没有特殊格式吗?您可以查看新创建的另一个文本文件。