java - 不使用 int onebyte 将字符串写入 OutputStream

标签 java android mysql outputstream

这是一个完全初学者的问题,过去一个小时我一直在搜索 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/

相关文章:

java - 两个线程调用wait和notify

java - 在 JavaFX 中的图像上使用 ColorPicker

java - 使用 temboo 的 JsonObject 类中的方法 valueToString 的 nosuchmethoderror

mysql - 如何动态地从另一个表中检索最近的日期 MySQL

mysql - SQL 计算 GROUP BY 中的行数

java - OnActionFromStart( Tapestry )

java - 逻辑缺陷: if List<String> is null return input else print function output

android - Kotlin如何实现android setOnClickListener之类的语法

java - 使用不同数据集的参数化 android 测试

mysql - Mysql 上的 Gtfs 数据库 - 在区域内搜索路线时查询速度慢