我正在尝试编写一个 Java 程序,它将 html 代码附加到文本并添加到文本前面。这个想法是有一个文本文件,其中包含一些由 &&
分隔的内容,并使用适当的 html 标签附加/前置文本。具体来说,我正在尝试自动生成引导列的 html。我向用户询问一个文件,然后将其读入数组列表。如果程序正常工作,数组列表中的每个位置都应包含分隔符 &&
之间的文本,如何编写将数组列表作为参数的 edit 方法
并添加适当的标签并返回一个新的数组列表,我可以将其传递给写入方法?
**编辑:我应该提到追加和前置方法只是我想要写入每个文本分隔条目的位置标记。接受有关如何编写该方法的任何建议。
public static ArrayList<String> readLines() throws IOException {
ArrayList<String> lines = new ArrayList<>();
JOptionPane.showMessageDialog(null, "Please choose a file");
JFileChooser input = new JFileChooser();
int a = input.showOpenDialog(null);
String file = "";
if (a == JFileChooser.APPROVE_OPTION) {
File selectedFile = input.getSelectedFile();
file = selectedFile.getPath();
}
//use file input to read in line one at a time
Scanner read = new Scanner(new File(file));
read.useDelimiter("&&");
while(read.hasNext()){
lines.add(read.next());
}
return lines;
}
public static void editFile(ArrayList<String> formalLines){
//appendText() --> insert content ---> prependText() --> return arrayList to write to file
}
public static void appendText () {
System.out.println("<div id=\"page-content-wrapper\">");
System.out.println(" <div class=\"container-fluid\">");
System.out.println(" <div class=\"col-xs-6 col-md-4\">");
}
public static void prependText(){
System.out.println(" </div>");
System.out.println(" </div>");
System.out.println("</div>");
}
public static void writeFile(ArrayList<String> formalFinalArray) throws FileNotFoundException, UnsupportedEncodingException {
try {
FileOutputStream fos = new FileOutputStream("output");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(formalFinalArray); // write MenuArray to ObjectOutputStream
oos.close();
} catch(Exception ex) {
ex.printStackTrace();
}
}
最佳答案
您可以确保追加和前置方法也返回 ArrayList,并使用 addAll 方法组合所有 3 个 ArrayList(在 editFile() 方法内),例如: http://beginnersbook.com/2013/12/how-to-joincombine-two-arraylists-in-java/
我猜这就是你想要的:
public static void editFile(ArrayList<String> formalLines){
//appendText() --> insert content ---> prependText() --> return arrayList to write to file
ArrayList<String> newList = new ArrayList<String>();
try {
for(String item:readLines()){
newList.addAll(appendText());
newList.add(item);
newList.addAll(prependText());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static ArrayList<String> appendText () {
ArrayList<String> append = new ArrayList<String>();
append.add("<div id=\"page-content-wrapper\">");
append.add(" <div class=\"container-fluid\">");
append.add(" <div class=\"col-xs-6 col-md-4\">");
return append;
}
public static ArrayList<String> prependText(){
ArrayList<String> prepend = new ArrayList<String>();
prepend.add(" </div>");
prepend.add(" </div>");
prepend.add("</div>");
return prepend;
}
关于java - 如何追加/添加存储在数组列表中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29024340/