我正在尝试读取一个包含以下内容的简单文本文件:

加载

比尔豆

1200

20

15

30

放弃

我需要逐行存储和打印内容。 我正在使用以下代码:

    String inputFile = "(file path here)";
    try {
        Scanner input = new Scanner(inputFile);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    String currentLine = "";
    while (!currentLine.equals("QUIT}")){
        currentLine = input.nextLine();
        System.out.println(currentLine);
    }
    input.close();

但是,输出非常“混乱”。 我试图避免存储所有换行符以及文本文件中未出现的其他任何内容。 输出为:

{\\ rtf1 \\ ansi \\ ansicpg1252 \\ cocoartf949 \\ cocoasubrtf540

{\\ fonttbl \\ f0 \\ fmodern \\ fcharset0 Courier;}

{\\ colortbl; \\ red255 \\ green255 \\ blue255;}

\\ margl1440 \\ margr1440 \\ vieww9000 \\ viewh8400 \\ viewkind0

\\ deftab720

\\ pard \\ pardeftab720 \\ ql \\ qnatural

\\ f0 \\ fs26 \\ cf0加载\\

比尔的豆\\

1200 \\

20 \\

15 \\

30 \\

放弃}

任何帮助将不胜感激,谢谢!

===============>>#1 票数:2

看起来您正在读取RTF文件,不是这样吗?

否则,我发现使用此构造对我来说阅读文本文件是最自然的:

        BufferedReader reader = new BufferedReader(
                                    new FileReader(new File("yourfile.txt")
                                );
        String text = null;

        // repeat until all lines is read
        while ((text = reader.readLine()) != null) {
            // do whatever with the text line
        }

因为这是一个RTF文件,所以请查看以下示例: RTFEditorKit

===============>>#2 票数:0

如果您坚持要编写自己的RTF阅读器,则正确的方法是扩展FilterInputStream并在其实现中处理RTF元数据。

===============>>#3 票数:0

只需将以下代码添加到您的类中,然后使用path参数对其进行调用。 它返回所有行作为List对象

public List<String> readStudentsNoFromText(String path) throws IOException {
            List<String> result = new ArrayList<String>();

            // Open the file that is the first
            // command line parameter
            FileInputStream fstream = new FileInputStream(new File(path));
            // Get the object of DataInputStream
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;
            //Read File Line By Line
            while ((strLine = br.readLine()) != null) {
                // Print the content on the console
                System.out.println(strLine);
                result.add(strLine.trim());

            }
            //Close the input stream
            in.close();

            return result;
        }

  ask by pdon translate from so

未解决问题?本站智能推荐: