Java 限制要打开的最大文件大小

Java 限制要打开的最大文件大小,java,javafx,Java,Javafx,我打开图像 FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Open Image File"); fileChooser.getExtensionFilters().add(new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif", "*.bmp", "*.jpeg")); selectedFile = fileChooser.showOpenDi

我打开图像

FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Image File");
fileChooser.getExtensionFilters().add(new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif", "*.bmp", "*.jpeg"));
selectedFile = fileChooser.showOpenDialog(null);

如何限制打开不超过1 mb的图像?

快速解决方案根据您的方法: 创建文件筛选器,然后将其与
文件选择器一起使用:

FileFilter myFilter = new FileFilter() {
    @Override
    public boolean accept(File file) {
        javax.swing.filechooser.FileFilter ef = 
            new FileNameExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif", "*.bmp", "*.jpeg");
        return ef.accept(file) && (file.length() <= (1024L * 1024L));
    }
};
fileChooser.setFileFilter(myFilter);
FileFilter myFilter=newfilefilter(){
@凌驾
公共布尔接受(文件){
javax.swing.filechooser.FileFilter ef=
新文件名扩展过滤器(“图像文件”、“*.png”、“*.jpg”、“*.gif”、“*.bmp”、“*.jpeg”);

return ef.accept(file)&&(file.length()我不熟悉类文件,但是似乎建议getTotalSpace方法返回文件大小(以字节为单位)

如果这是正确的,那么您可以将大小(mb)与1024进行比较,如果超过此值,则拒绝该值

粗略的例子

boolean valid = false;
final long sizeLimit = 1024 * 8;
while(!valid){
    selectedFile = fileChooser.showOpenDialog(null);
    if(sizeLimit > selecteFile.getTotalSpace()){
         valid = true;
    }
}

选择的文件类型是什么?@A1ex NS这是JavaFx还是Swing?或者你可以同时使用两者吗?不完全正确。请仔细阅读:“返回由此抽象路径名命名的分区的大小。如果此抽象路径名未命名分区,则返回[…]0L。”标签为
JavaFx
。您的解决方案之一似乎是
Swing
boolean valid = false;
final long sizeLimit = 1024 * 8;
while(!valid){
    selectedFile = fileChooser.showOpenDialog(null);
    if(sizeLimit > selecteFile.getTotalSpace()){
         valid = true;
    }
}