我可以使用 FileInputStream 而不在一开始就给它一个路径吗

Can I use FileInputStream without giving it a path right at the start

我正在尝试将文件上传到数据库(具体来说是 .mp4 文件)。但是,当我 运行 我的代码时,文件路径尚未选择,因为在程序中会弹出一个 window,您可以在其中 select 您要上传的文件。有办法实现吗?

我在使用 FileInputStream 时遇到的问题是它在我的程序开始时要求提供文件路径,但此时路径仍然不确定。

你好 Pygesux

这是我尝试插入数据库的地方

public void draw() {
    open.draw();
    openText.draw();
    if (video != null) {
        upload.draw();
        uploadText.draw();
    }
}
public void mouseClick() {
    if (open.mouseOverMe()) {
        selectInput("Select a file to process:", "fileSelected");
    } else if (upload.mouseOverMe()) {
        uploadFile();
    }
}
public void fileSelect(File selection) {
    video = selection;
}
public void uploadFile() {
    try {
        con = database.getConnect();
        java.sql.PreparedStatement statement = con.prepareStatement("INSERT INTO filmpje (filmpje) VALUES (?)");
        FileInputStream input = new FileInputStream(video);
        statement.setBlob(1, input);
        statement.executeUpdate();
    }
    catch (SQLException e) {
        e.printStackTrace();
    }
}

为什么选择路径后不创建FileInputStream?

创建一个方法,获取路径,然后创建 FileInputStream,并执行其他工作。在你知道你的路径后调用此方法,在用户输入它并按 button/enter 接受(这是你的应用程序逻辑)。

我认为您正在尝试使用 selectInput() 对吗?参考示例不是很清楚。当用户选择一个文件时,该程序继续 运行,因此如果您尝试 运行 需要文件名的代码,则会出现错误。这是一个测试文件是否已设置的示例。您需要根据您的特定需求更新它:

String input;


void setup() {
  size(500,200);

  selectInput("Select a file...", "fileSelector");
}


void draw() {
  background(255);

  fill(0);
  noStroke();
  if (input == null) {
    text("No file selected.", 20,height/2);
  }
  else {
    text(input, 20,height/2);
  }

}

void fileSelector(File selection) {
  if (selection == null) {
    // window closed or user hit cancel button
  }
  else {
    input = selection.getAbsolutePath();
  }
}