[英]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.