我有一个加密给定密钥的文本文件的任务。我有它工作,除了当我有一个包含多行文本的文本文件时,输出全部在一行。我相信这是因为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类型。我不确定是否有简单的替代品,或者我是否必须从根本上改变我的代码。
答案 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"