这是一个完全初学者的问题,过去一个小时我一直在搜索 stackoverflow 和谷歌,但我没有找到我要找的东西,希望这里有人能给我指明正确的方向。
我正在尝试将一个字符串写入 OutputStream,然后我将使用它来将数据写入 MySQL 数据库。我已经成功地从 MySQL 检索数据(从 .php,实现 JSON 和 RESTful),所以我对我在做什么有一些想法,我想。我正在创建一个方法,该方法将采用一个字符串并返回一个输出流,但我在写入输出流时遇到了问题,因为当我尝试初始化一个输出流时,它会创建一个带有 write(int oneByte) 的匿名内部类方法。这不是我想要的。
private static OutputStream convertStringtoStream(String string) {
byte[] stringByte = string.getBytes();
OutputStream os = new OutputStream() {
@Override
public void write(int oneByte) throws IOException {
/** I'd rather this method be something like
public void write(byte[] bytes), but it requires int oneByte*/
}
};
//return os here
}
如您所见,我想用缓冲区而不是单个字节写入我的 OutputStream。我确定这是一个简单的问题,但我一直无法找到答案,甚至无法找到我想要的示例代码。如果有人能指出我正确的方向,我将不胜感激。谢谢。
最佳答案
您的方法可能看起来像这样,但我不确定它会完成什么。您将如何使用返回的 OutputStream
?
private static OutputStream convertStringtoStream(String string) {
byte[] stringByte = string.getBytes();
ByteArrayOutputStream bos = new ByteArrayOutputStream(string.length());
bos.write(stringByte);
return bos;
}
另外,请注意使用 String.getBytes()
从长远来看可能会给您带来麻烦,因为它使用系统的默认编码。最好选择显式编码并使用 String.getBytes(Charset)
方法。
关于java - 不使用 int onebyte 将字符串写入 OutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4912398/