在java I/O文件中以新行打印输出

在java I/O文件中以新行打印输出,java,file-io,Java,File Io,我想在新行中打印输出,怎么做? 下面是输出 CHILD: Child line one oneCHILD: Child line one twoCHILD: Child line one three CHILD: Child line two oneCHILD: Child line two twoCHILD: Child line two three 取决于你想做什么。以下是我的两种方法: 在文件末尾追加一行 void WriteLog(String date, String message)

我想在新行中打印输出,怎么做? 下面是输出

CHILD: Child line one oneCHILD: Child line one twoCHILD: Child line one three CHILD: Child line two oneCHILD: Child line two twoCHILD: Child line two three
取决于你想做什么。以下是我的两种方法:

在文件末尾追加一行

void WriteLog(String date, String message) {
    String logFileName = <path to file>;
    File logFile = new File(logFileName);
    //make directories
    logFile.getParentFile().mkdirs();
    try (FileWriter writer = new FileWriter(logFile, true)) {
        writer.write(message);
        writer.write("\r\n");
    } catch (IOException ex) {
        Cls_log.LogError("Error writing log - " + ex.toString());
    }
}
public static void WriteABcardLog(Map<String,String> etiquetteCache) {
    File logFile = new File(<path to file>);
    logFile.getParentFile().mkdirs();
    try (PrintWriter writer = new PrintWriter(logFile)) {
        Iterator<Map.Entry<String, String>> iterator = etiquetteCache.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, String> entry = iterator.next();
            try {
                writer.print(entry.getKey() + ";" + entry.getValue() + "\r\n");
            } catch (NullPointerException e) {
                Cls_log.LogError(e);
            }
        }
        writer.println();
    } catch (IOException ex) {
        Cls_log.LogError("Error writing etiquette log - " + ex.toString());
    }
}
void WriteLog(字符串日期、字符串消息){
字符串logFileName=;
文件logFile=新文件(logFileName);
//制作目录
logFile.getParentFile().mkdirs();
try(FileWriter=newfilewriter(日志文件,true)){
写(信息);
writer.write(“\r\n”);
}捕获(IOEX异常){
Cls_log.LogError(“写入日志时出错-”+ex.toString());
}
}
将所有字符串作为行写入文件(覆盖文件)

publicstaticvoid-writeablecardlog(地图礼仪){
文件日志文件=新文件();
logFile.getParentFile().mkdirs();
try(PrintWriter=新的PrintWriter(日志文件)){
迭代器迭代器=etiquetteCache.entrySet().Iterator();
while(iterator.hasNext()){
Map.Entry=iterator.next();
试一试{
writer.print(entry.getKey()+“;”+entry.getValue()+“\r\n”);
}捕获(NullPointerException e){
Cls_log.LogError(e);
}
}
writer.println();
}捕获(IOEX异常){
Cls_log.LogError(“写入礼仪日志时出错-”+ex.toString());
}
}

当您最终在文件中写入行时,请添加bufferedWriter.newLine();。。。它将在新的行中编写嵌套输出我建议您首先清理代码并决定如何访问文件;通过FileInputStream和BufferedReader、FileOutputStream和BufferedWriter,或通过FileReader或通过Files.write(…)&c。现在,您打开2个文件进行读取,1个文件进行写入,然后每次使用
files.write(…)
再次打开输出文件。这样做没有多大意义。@CoderNeji:它给出了错误:无法从类型BufferedWriter对非静态方法newLine()进行静态引用。。。你能把你的代码合并到我的代码中并发布吗here@sindhupandey您必须创建bufferedwriter.class的对象并将其用于文件写入。。。。再次看到我之前的评论。。。它被一个对象调用。。。不是按班级。。。
public static void WriteABcardLog(Map<String,String> etiquetteCache) {
    File logFile = new File(<path to file>);
    logFile.getParentFile().mkdirs();
    try (PrintWriter writer = new PrintWriter(logFile)) {
        Iterator<Map.Entry<String, String>> iterator = etiquetteCache.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, String> entry = iterator.next();
            try {
                writer.print(entry.getKey() + ";" + entry.getValue() + "\r\n");
            } catch (NullPointerException e) {
                Cls_log.LogError(e);
            }
        }
        writer.println();
    } catch (IOException ex) {
        Cls_log.LogError("Error writing etiquette log - " + ex.toString());
    }
}