Java File I / O出现问题

时间:2017-03-22 01:50:36

标签: java io

我试图用Java编写Strings到文件中。

基本上,我应该从包含文本的文件(假定为字符串)中读取。对于每行文字, 如果String的格式为word1 word2(即,如果它是两个单词),我必须将其写入一个文件(名称列表),而如果它没有格式,我必须将它写入另一个文件,该文件应该被称为System.out(扩展名为.txt)

我已经将名单列表部分工作得很好。名称将按原样写入输出文件,但在写入System.out文件时,只写入一行。

因此,跳过格式化为常规句子的行("不应写入"等)。我不确定为什么会这样。以下是我的代码摘录:

public static void processData(BufferedReader inputFile, PrintWriter outputFile)
    {

        // A modified version of
        // the algorithm shown
        // on the class page.

        String inputLine = null;

        try
        {
            // While loop that processes
            // each line taken from the file.
            // First it checks whether the 
            // line has the format word1 word2

            while ((inputLine = inputFile.readLine()) != null)
            {               

                // Splits the line into tokens,
                // taking the delimiter to be
                // anything that is not an
                // upper or lowercase letter
                // or the tab character (\t)
                // in groups of at least one
                // (using the regex [^a-zA-Z]+)

                String[] tokens = inputLine.split("[^a-zA-Z\t]+");

                // REMOVE LINES 215-216
                System.out.println("inputLine is: " + inputLine);
                System.out.println("The length of tokens is: " + tokens.length);

                // If the line has the format
                // word1 word2, the outputWriter
                // method is invoked to process
                // the words and write them to
                // the output file

                if (tokens.length == 2){
                    outputWriter(tokens, outputFile);
                }

                // Otherwise, the systemWriter
                // method is invoked to write
                // the line to the System.out file

                // REMOVE LINE 234
                else{
                    System.out.println("ENTERED SYSTEMWRITER TREE AT: " + inputLine);
                    systemWriter(tokens);
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

你需要分割一个空格,如下所示:

String[] tokens = inputLine.split(" ");

这会产生一系列单词,我认为这就是你想要的。