我通过以下行在我的Android应用程序中获取文件大小,该应用程序位于远程计算机上:
long fileLengthOnServer = connection.getContentLength();
问题是有时fileLengthOnServer的值是负值。正如我在一些帖子中读到的那样,一个长变量应该由最后一个L的值初始化,但我不知道在我的情况下如何添加它。如果我把它长期解决问题?
提前致谢
答案 0 :(得分:0)
假设您的连接是URLConnection
,请使用getContentLengthLong()
功能:
https://docs.oracle.com/javase/7/docs/api/java/net/URLConnection.html#getContentLengthLong()
答案 1 :(得分:0)
您可以从文件长度中读取文件大小。
长尺寸= file.length();
/**
* @param size file.length
* @return file size in string
*/
private String getReadableFileSize(long size) {
try {
if (size <= 0) {
return "0";
}
final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"};
int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups];
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
只需调用此方法并传递文件长度
Log.d(LOG_TAG, String.format("BitmapSize : %s", getReadableFileSize(imageFile.length())));