Java-从带有布局的模板制作文件?

标签 java file layout filereader bufferedwriter

我想要实现的是一个程序,它根据名为 WaarschuwingsBriefTemplate.txt (WarningLetterTemplate) 的模板创建一个文件。该方法的调用方式是在括号中包含 Klant(客户)。

现在,当我调用此方法时,它根本不会写入任何输入,即使模板中有输入,并且我尝试在方法本身中添加输入,但它似乎不起作用。外来词简译:

NAAM = 名称

地址=地址

邮政编码 = 邮政编码

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;


public class FileMaker {
        public FileMaker(){
        }
        public void maakWaarschuwingsBrief(Klant k) throws IOException{
                File file = new File("WaarschuwingsBriefTemplate.txt");
                String newFile = "";

                try{
                        Scanner sc = new Scanner(file);
                        while(sc.hasNextLine()){
                                String line = sc.nextLine();
                                if(line.contains("--NAAM--")){
                                        line = line.replace("--NAAM--", k.getNaam())+"\n";
                                }
                                if(line.contains("--ADRES--")){
                                        line = line.replace("--ADRES--", k.getAdres())+"\n";
                                }
                                if(line.contains("--POSTCODE--")){
                                        line = line.replace("--POSTCODE--", k.getPostcode())+"\n";
                                }
                                newFile += line + "\n";

                        }
                        sc.close();
                }catch(FileNotFoundException  e){
                        e.printStackTrace();
                }
                File file2 = new File(k.getNaam().replaceAll("\\s","")+".txt");
                if(!file2.exists()){
                        file2.createNewFile();
                }
                FileWriter fw = new FileWriter(file2.getAbsoluteFile());
                BufferedWriter bw = new BufferedWriter(fw);
                bw.write(newFile);
                bw.close();
        }
}

`

最佳答案

如果您的模板不太大并且可以将整个文件读取到内存中,则可以尝试 https://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/text/StrSubstitutor.html而不是手动操作?

也可以使用http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#lineSeparator--而不是“\n”

关于Java-从带有布局的模板制作文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29410049/

相关文章:

android - 当我在 android 中写入文件时,它会覆盖以前存在的内容

java - 使用 Java 解析 XML 文件(DOM 解析器)

Java 将文件发布到 PHP

html - 为什么使用表格进行网站布局如此邪恶

Java HashMap、hashCode() equals()——如何实现多个key一致?

java - 如何等待flowable onComplete?

ASP.NET MVC - 在布局中有条件地呈现部分

java - 如何使用 GridLayout 设置组件大小?有没有更好的办法?

java - 在 equals() 中使用缓存的 hashCode() 值

java - Eclipse 控制台不显示整个输出