繁体   English   中英

如何在Java中的文本文件中添加多行字符串?

[英]How to add multiline string to a text file in java?

这是我正在形成应该写入文件的多行字符串的地方。

   Base64 encoder = new Base64(64,System.getProperty("line.separator").getBytes());
    String cert_begin = "-----BEGIN CERTIFICATE-----"+ System.getProperty("line.separator");
    String end_cert =  System.getProperty("line.separator")+"-----END CERTIFICATE-----";

    byte[] derCert = cert.getEncoded();

    String pemCertPre = new String(encoder.encode(derCert));

    String pemCert = cert_begin + pemCertPre + end_cert;
    return pemCert;

下面显示了用于写入文件的代码。

        String PEMString = convertToPem(cert);

        FileWriter PEMWriter = new FileWriter(PEMFile, false);
        PEMWriter.write(PEMString);

        //flush the file
        PEMWriter.flush();

当我写入文件时,仅将pemCertPre写入一行。

Base64是从

org.apache.tomcat.util.codec.binary.Base64

嘿,我在写文件时使用BufferedWriter。 也许您可以尝试一下。 我已经在main方法中编写了一个基本的编写器作为示例,而其他两种方法是针对您遇到的问题的。 但是在第一个方法CovertToPem()中有一个错误,我认为cert类型为“证书”

希望这可以帮助。

public static void main(String args[]){

    File file = new File("subfolder/path/fileName.txt");
    String a = "one";
    String b = "two";
    char ch = 't';
    try {
        BufferedWriter writer = new BufferedWriter(new FileWriter(file));

        writer.write(a);
        writer.newLine(); //makes new line

        writer.write(b);
        writer.newLine();

        writer.write(ch);
        writer.newLine();

        writer.flush();
        writer.close();

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
    //try is instead

    private String[] convertToPem(Certificate cert){
        String[] pemCert = new String[3];

        try{
          Base64 encoder = new Base64(64,System.getProperty("line.separator").getBytes());
            String cert_begin = "-----BEGIN CERTIFICATE-----"+ System.getProperty("line.separator");
            String end_cert =  System.getProperty("line.separator")+"-----END CERTIFICATE-----";

            byte[] derCert = cert.getEncoded();

            String pemCertPre = new String(encoder.encode(derCert));

        }catch(Exception e){
            e.printStackTrace();
        }
        return pemCert;
    }

    private void writeToFile(File fileLoaction){

        Certificate cert = null;
        String[] pemCert = convertToPem(cert);

        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter(fileLoaction));

            for(int i=0; i<pemCert.length; i++){
                writer.write(pemCert[i]);
                writer.newLine();
            }

            writer.flush();
            writer.close();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

进口

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.security.cert.Certificate;

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM