簡體   English   中英

如何在 Java (Android) 中將 OutputStream 轉換為 String?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM