繁体   English   中英

jfilechooser,保存倍数文件,图像?

[英]jfilechooser, save multiples file ,image?

我想让 jfilechooser 选择多种类型,但我的文件输入流中出现错误,如下所示:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    try {
        JFileChooser ch = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
        int c = ch.showOpenDialog(this);
        ch.setMultiSelectionEnabled(true);
        ch.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        ch.setMultiSelectionEnabled(true);
        if (c == JFileChooser.APPROVE_OPTION) {
            File[] f = ch.getSelectedFiles();


            FileInputStream in = new FileInputStream(); 
            /// the error start from in here
            byte b[] = new byte[in.available()];
            in.read(b);
            Data data = new Data();
            lblNewLabel.setText(ch.getSelectedFile().getAbsolutePath());
            data.setName(lblNewLabel.getText().trim());
            data.setFile(b);
            out.writeObject(data);
            out.flush();
            textArea.append("send 1 file ../n");
        }
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, e, "Error",
                JOptionPane.ERROR_MESSAGE);
    }

}`

每个人都可以修复它吗?

看起来您正在使用.getSelectedFile()方法,尽管您选择了多个文件。

您必须像代码示例的第 9 行一样使用.getSelectedFiles()方法并遍历File[]

    FileInputStream in = new FileInputStream(); 
    /// the error start from in here
    byte b[] = new byte[in.available()];
    in.read(b);

= new FileInputStream()FileInputStream的实例化是错误的。 正如nvplus所说,您必须选择一个文件并将其实例化如下

File f = ch.getSelectedFile();
FileInputStream in = FileInputStream(f); // <---

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM