我需要读取文件的内容,使用 API Writer(PEMWriter - 将内容格式转换为所需格式)将它们写入输出流,然后从该输出流中重新读取新格式化的内容并存储在 String 变量中.
有人知道怎么做吗?
用代码的话来说:
PEMWriter writer = null;
Writer out = null;
Reader in = null;
String priv = null;
KeyStore ks = null;
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
ks.load(new FileInputStream(MyConfig.KEYTOOL_FILE),
MyConfig.PASSWORD.toCharArray());
KeyPair keyPair = getPrivateKey(ks, "myKey",
MyConfig.PASSWORD.toCharArray());
PrivateKey privateKey = keyPair.getPrivate();
out = new BufferedWriter (new OutputStreamWriter(new org.apache.commons.io.output.ByteArrayOutputStream()));
writer = new PEMWriter(out);
writer.writeObject(privateKey);
in = new BufferedReader (new org.apache.commons.io.input.NullReader( new Long(5000).longValue()));
IOUtils.copy(in, out);
priv = IOUtils.toString(in);
上面的代码应该可以工作,因为它有一个 Writer(out),它使用 bouncy castle api 填充了 PEMWriter 的内容。尝试使用 Reader (in) 重新读取 out 的内容并将它们存储到 String (priv) 时会出现问题。我收到一个 IO 异常,说明文件结束后读取。这发生在网上IOUtils.copy(in, out);
。我很感激这个问题的一些帮助。提前致谢。