[英]How to convert OutputStream to String in Java (Android)?
我正在嘗試讀取我在 outputStream 中得到的字符串,該字符串又由 ftp 從 ftp 服務器寫入。
我在這個問題上停留了大約 2 個小時,我發現很難相信它是如此難以解決。
我的問題有什么好的解決方案嗎?
以下是相關代碼:
boolean success = false;
OutputStream outputStream = null;
try {
outputStream = new BufferedOutputStream(new FileOutputStream(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/" + fileName));
success = ftp.retrieveFile("/ViatorAndroid/" + fileName, outputStream);
} catch (Exception e) {
Log.d("FTPDownloadLatestVersion", "e = " + e.getMessage() + " " + Arrays.toString(e.getStackTrace()));
}
outputStream.close();
if (success) {
String versionNumberString = outputStream.getString(); // ??? I need here a way to get the string inside this output stream. Any clue how???
int versionNumber = Integer.parseInt(versionNumberString);
Log.d("FTPGetLastestVersionCode", "VersionNumber = " + versionNumber);
return BuildConfig.VERSION_CODE < versionNumber;
}
如果您只想要字符串中的內容,則構建一個 ByteArrayOutputStream 它將收集寫入它的所有字節,然后將其轉換為字符串。
就像是
try (ByteArrayOutputStream baos=new ByteArrayOutputStream()){
boolean success = ftp.retrieveFile("/ViatorAndroid/" + fileName, baos);
if (success){
String versionNumberString = new String(baos.toByteArray(),StandardCharsets.UTF_8);
...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.