替代Java中的BufferedReader.readLine()以输出多行文本

时间:2016-02-22 03:49:26

标签: java string encryption bufferedreader

我有一个加密给定密钥的文本文件的任务。我有它工作,除了当我有一个包含多行文本的文本文件时,输出全部在一行。我相信这是因为BufferedReader.readLine()不保存结束行?这是我的代码:

static void encode(File file, String key) throws IOException
{
    FileReader fileReader = new FileReader(file); 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 
    String current;  
    char content[] = {};
    StringBuilder string = new StringBuilder(String.valueOf(content)); 

    while((current=bufferedReader.readLine())!=null)  //this reads the file contents and calls our convertString method
    {

        for(int i=0;i<current.length();i++) 
        {
            content = new char[current.length()]; 
            if(Character.isLetter(current.charAt(i))) 
            {
               content[i] = convertString(current.charAt(i), key);
               string.append(content[i]); 
            }
            else 
            {
               content[i] = current.charAt(i);
                string.append(content[i]); 
            }
         }
     }
    System.out.println(string); 
    fileReader.close();

}

我知道有BufferedReader.read(),但这是一个int类型。我不确定是否有简单的替代品,或者我是否必须从根本上改变我的代码。

2 个答案:

答案 0 :(得分:1)

只需自己添加换行符

即可
string.append("\n");

答案 1 :(得分:0)

If content is all being printed on one line, in general look for a way to add "\n"