java - 交替使用 OutputStream、Output Stream Writer 和 BufferedWriter

标签 java android httpurlconnection bufferedwriter

我正在使用 Java (Android) 尝试将文件上传到 Web 服务器,并按照建议使用 HttpURLConnection。过去,我在以 POST 请求发送数据时遇到了困难,但几个小时后就成功实现了。该数据是简单的 JSON 数据,因此转换不是主要问题,我使用缓冲编写器来实现目标。

现在我想使用 multipart/form-data 上传真实文件,并期望传递不同编码的混合,其中,二进制,OutputStreamWriter(仅接受字符串或 char[] 参数)和 BufferedWriter(仅允许类似参数)都不支持。

我需要将二进制和文本数据的混合发送到服务器,我想知道执行此操作的最佳方法是什么?

我需要使用原始 OutputStream 来发送字节,但这会在发送字符数组时与 OutputStreamWriter + BufferedWriter 层发生冲突吗?

或者也许我应该使用特定方法将 UTF8 文本转换为二进制并使用字节数组将其全部发送?

感谢您提供的任何帮助

最佳答案

我决定,对于少量的总字节(几 MB),使用输出流并将字符串转换为字节数组可能会更容易。

虽然这在内存方面效率较低(会喜欢缓冲 IO),但它要简单得多,虽然应用程序仍然简单,但这是目前的方法。

关于java - 交替使用 OutputStream、Output Stream Writer 和 BufferedWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50312129/

相关文章:

java - Ant 构建失败,错误为 "SAXParseException: Open quote is expected for attribute"

Java扫描器,获取字符串的特定部分

android - ParseFile.cancel() 不工作 - 文件一直在下载

android mediaSession getPosition() 总是返回 0

java - 在 get 请求中将 JSON 数据作为请求体传递

android - 为 Google Maps API v2 Android 发布流媒体指示

java - 将 Java 中的字符串拆分为 PHP

java - Jenkins Android作业出现Gradle错误,Jacoco调试

java - setInfoWindowAdapter 在 for() 循环中不刷新

java - 通过 Java 使用 auth token 发出 api 请求