从mysql blob读取java.io.file

ma8fv8wu  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(460)

我有下面的代码,它将一个列表存储到文件,然后存储到mysql blob列。是否可以从数据库中恢复该列表?

  1. ArrayList<String> myList = new ArrayList<String>();
  2. File tempFile = File.createTempFile("myFile.temp");
  3. tempFile.deleteOnExit();
  4. FileOutputStream fileOutputStream = new FileOutputStream(tempFile);
  5. ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
  6. objectOutputStream.writeUnshared(myList);
  7. objectOutputStream.close();
  8. String trailQuery = "INSERT INTO table (tempFile) VALUES (?)";
  9. PreparedStatement preparedStatement = connection.prepareStatement(trailQuery);
  10. preparedStatement.setObject(1, tempFile);

我试着读这个,但我得到一个filenotfoundexception

  1. if (resultSet.next()) {
  2. InputStream fileInputStream = resultSet.getBinaryStream("tempFile");
  3. ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
  4. File inner = (File) objectInputStream.readObject();
  5. FileInputStream fileInputStreamInner = new FileInputStream(inner);
  6. ObjectInputStream objectInputStreamInner = new ObjectInputStream(fileInputStreamInner);
  7. ArrayList<String> myList = (ArrayList<String>) objectInputStreamInner.readObject();
  8. System.out.println(myList.size());
  9. }

例外

  1. java.io.FileNotFoundException: \tmp\myFile.1708309680603860570.temp (The system cannot find the path specified)
zour9fqk

zour9fqk1#

正如@ejp提到的,java.io.file只不过是一个文件名的持有者。。。有错误的理解-所以文件的内容都不在那里。。。。

相关问题