相关疑难解决方法(0)

如何在java中将字节大小转换为人类可读的格式?

如何在Java中将字节大小转换为人类可读的格式?像1024应该变成"1 Kb"而1024*1024应该变成"1 Mb".

我有点厌倦为每个项目编写这个实用工具方法.Apache Commons中是否有任何静态方法?

java formatting apache-commons

503
推荐指数
13
解决办法
20万
查看次数

获取文件夹或文件的大小

如何在Java中检索文件夹或文件的大小?

java filesystems

99
推荐指数
7
解决办法
10万
查看次数

如何获取mb中的文件大小?

我在服务器上有一个文件,它是一个zip文件.如何检查文件大小是否大于27 MB?

File file = new File("U:\intranet_root\intranet\R1112B2.zip");
if (file > 27) {
   //do something
}
Run Code Online (Sandbox Code Playgroud)

java url file filesize

56
推荐指数
5
解决办法
11万
查看次数

SpringBoot当文件上载大小限制超过获取MultipartException而不是MaxUploadSizeExceededException时

我有简单的SpringBoot应用程序文件上传功能,其中最大文件上传文件大小为2 MB.

我已经配置multipart.max-file-size=2MB它工作正常.但是当我尝试上传大小超过2 MB的文件时,我想处理该错误并显示错误消息.

为此我有我的控制器实现HandlerExceptionResolverresolveException()实现如下:

public ModelAndView resolveException(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception exception)
    {        
        Map<String, Object> model = new HashMap<String, Object>();
        if (exception instanceof MaxUploadSizeExceededException)
        {
            model.put("msg", exception.getMessage());
        } else
        {
            model.put("msg", "Unexpected error: " + exception.getMessage());
        }

        return new ModelAndView("homepage", model);
    }
Run Code Online (Sandbox Code Playgroud)

问题是我得到的异常是MultipartException而不是MaxUploadSizeExceededException.

stacktrace是: 无法解析多部分servlet请求; 嵌套异常是java.lang.IllegalStateException:org.apache.tomcat.util.http.fileupload.FileUploadBase $ FileSizeLimitExceededException:字段myFile超过其允许的最大大小2097152字节.

在文件大小超过的情况下为什么我没有得到MaxUploadSizeExceededException?我得到它的父Exception MultipartException,除了文件大小超出之外,还可能由于许多其他原因而发生.

有什么想法吗?

java spring-mvc spring-boot

9
推荐指数
1
解决办法
1万
查看次数

如何获取缓存目录的确切大小:android

需要:我只是试图获取手机中安装的每个应用程序的占用缓存大小.

我的方法:

PackageManager packageManager = getPackageManager();
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) 
{
    try 
    {
        Context mContext = createPackageContext(packageInfo.packageName, CONTEXT_IGNORE_SECURITY);
        File cacheDirectory = mContext.getCacheDir();
        if(cacheDirectory==null)
        {
            cacheArrayList.add("0");
        }
        else
        {
            cacheArrayList.add(String.valueOf(cacheDirectory.length()/1024));
        }
    }
    catch (NameNotFoundException e)
    {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:如果directory为null,则返回0(作为条件).但是如果目录存在它总是返回4 Kb.我按照以下流程检查了我的应用的缓存:

设置 - >应用程序 - >应用程序名称

但我发现它在那里0B.

为什么它的发生可以解释一下?以及如何获得确切的缓存大小?

android caching

8
推荐指数
2
解决办法
7634
查看次数

有没有一种方便的方法来格式化Freemarker中人类可读的字节大小字符串?

有很多的答案对这个问题的Java(如何字节大小转换为人类可读的格式在Java?格式文件大小为MB,GB等)和甚至对Groovy/Grails的,更何况PHP,但有一个内置或方便的方法在FreeMarker中执行此操作?

为清楚起见,我采用通用SI方法,而不是2的二进制幂.例如

      1 ? 1B
    123 ? 123B
   1000 ? 1KB
   1728 ? 1.7KB
7077888 ? 7.1MB
Run Code Online (Sandbox Code Playgroud)

等等.

鉴于FreeMarker似乎没有对数函数,有没有办法在纯FreeMarker中执行此操作,或者是我用Java创建模板方法的唯一选择.

string format freemarker numbers funnelback

7
推荐指数
2
解决办法
999
查看次数

android.text.format.Formatter.formatFileSize() 返回错误的格式

这里我比较了Android内置方法来格式化文件和自定义来自/sf/answers/391988971/

\n
Timber.d(\n    "Format file size using Formatter.formatFileSize " +\n            "${Formatter.formatFileSize(this, 1_000_000_000L)}, " +\n            "${Formatter.formatFileSize(this, 1_073_741_824L)}"\n)\n\nTimber.d(\n    "Format file size using readableFileSize " +\n            "${readableFileSize(1_000_000_000L)}, " +\n            "${readableFileSize(1_073_741_824L)}"\n)\n
Run Code Online (Sandbox Code Playgroud)\n

\n
fun readableFileSize(size: Long): String? {\n    if (size <= 0) return "0"\n    val units = arrayOf("B", "kB", "MB", "GB", "TB")\n    val digitGroups = (log10(size.toDouble()) / log10(1024.0)).toInt()\n    return DecimalFormat("#,##0.#").format(size / 1024.0.pow(digitGroups.toDouble()))\n        .toString() + " " + units[digitGroups]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是结果:

\n
Format file size using Formatter.formatFileSize 1,00\xc2\xa0GB, 1,07\xc2\xa0GB\nFormat file size using readableFileSize …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
0
解决办法
792
查看次数

在Java/JSTL中格式化文件大小

我想知道是否有人知道在Java/JSP/JSTL页面中格式化文件大小的好方法.

是否有这样的实用工具类?
我搜索了公地但却一无所获.任何自定义标签?
库已经存在吗?

理想情况下,我希望它的行为类似于Unix的ls命令中的-h开关

34 - > 34
795 - > 795
2646 - > 2.6K
2705 - > 2.7K
4096 - > 4.0K
13588 - > 14K
28282471 - > 27M
28533748 - > 28M

java formatting jsp jstl

4
推荐指数
2
解决办法
3528
查看次数

Scala 代码(如持续时间)的人类可读大小单位(文件大小)

是否有任何库为人类可读的文件大小单位(如Duration)提供具有隐式转换(从 Int、Long、Float)的对象/类。

有了Duration你可以这样做:

11.millis
1.5.minutes
10.hours
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一些图书馆可以让我这样做:

1.gibabyte
1024.megabytes
10.gibibytes
10.GB
50.GiB
Run Code Online (Sandbox Code Playgroud)

我知道我可以自己实现这个,但我不想重新发明轮子。

scala

4
推荐指数
1
解决办法
2002
查看次数

在 Dart 中格式化文件大小

如何在 Dart 中格式化文件大小?

输入:1000000

预期输出:1 MB

为了便于使用,输入可以是 anint或 a double,结果应该是String只有一位小数的 a。

format filesize dart flutter

4
推荐指数
1
解决办法
1615
查看次数