java - 计算文件名字符并限制文件大小以显示 Joptionpane
问题描述
我使用 Jfilechooser,如果我选择文件,它将计算文件名的字符数,但是如果文件超过 3kb,它将显示 Joptionpane。我的问题是即使文件是 0kb,Joptionpane 也会出来,我不知道我的代码是否正确。
private int countWords(File f) {
int filelength = 0;
// Count of words.
filelength = f.getName().length();
double bytes = f.length();
double kilobytes = (bytes / 1024);
double limit = (1024 * 3);
if (f.exists() && (kilobytes >= limit)) {
JOptionPane.showConfirmDialog(null, "File Size:" + kilobytes + "KB", "Message Interrupted",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
}
return filelength;
}
解决方案
这个...
double kilobytes = (bytes / 1024);
正在获取文件字节并将其转换为千字节(1216 bytes
to 1.1875
)
这个...
limit = (1024 * 3);
取 3(千字节)并将其转换为字节(3072.0
)
所以,你最终会比较1.875
哪个3072
是不正确的。而是删除其中一个转换,例如...
double bytes = f.length();
//double kilobytes = (bytes / 1024);
double limit = (1024 * 3);
if (f.exists() && (bytes >= limit)) { ... }
在我的测试中,我对 0kb 文件没有任何问题
推荐阅读
- c - 在 C 中计算 Pi 的函数
- html - *ngFor 引发错误,其次图像未调整大小
- node.js - 当服务器托管在特定路径中时,无法从 node.js 获取 POST 请求
- cognos - Cognos Analytics - 将每周报告保存到本地驱动器
- elasticsearch - 弹性搜索放置模板。[mapper_parsing_exception] 根映射定义具有不受支持的参数
- python - 缩小我使用 python 从网站上抓取的内容
- c++ - 获取模板中数组最小值的函数
- android - 推送通知因 curl 失败
- javascript - 如何在 JS 中制作一个按钮数组?以及如何设置随机图像?
- reactjs - 与 redux 执行 async 并一起反应悬念