所以我试图读取一个文件并在顶部添加两行代码。到目前为止,还没有工作,所以我试着读取线条并将它们写回来。这是一次重大失败。它只会写入目录中的一个文件,并且只是一直填写xmlopentag,即使它被一遍又一遍地注释掉了。如果有人有任何想法,将不胜感激。
ArrayList<String> lines = new ArrayList();
BufferedReader reader = null;
String xmlstylesheet = "<?xml-stylesheet type=\"text/xsl\" href=\""+stylefilename+"\"?>";
String xmlopentag = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
for(int i=0;i<files.length;i++) {
lines.clear();
try {
reader = new BufferedReader(new FileReader(files[i]));
String text = null;
while ((text = reader.readLine()) != null) {
lines.add(text);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
//lines.add(1, xmlstylesheet);
//lines.add(0, xmlopentag);
try {
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(files[i])));
for(int j=0;j<lines.size();j++) {
writer.write(lines.get(i));
}
} catch (IOException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
答案 0 :(得分:5)
writer.write(lines.get(i));
应该是
writer.write(lines.get(j));
答案 1 :(得分:1)
for PrintWriter
操作的循环具有索引j
用于迭代,但使用i
获取列表值
请正确检查并更改以下代码
for(int j=0;j<lines.size();j++) {
writer.write(lines.get(i));
}
到
for(int j=0;j<lines.size();j++) {
writer.write(lines.get(j));
}