除了使用BufferedReader之外,还有其他方法可以重置FileReader吗?

时间:2018-10-25 04:29:20

标签: bufferedreader filereader

我一直在研究某种jdbc驱动程序。 在我的驱动程序代码中,我应该重用Reader对象,以便分发到3个不同的节点。 搜索stackoverflow后,我意识到可以使用带有mark()和reset()的BufferedReader。但是在这种情况下,将使用内部缓冲区。因此,除了使用BufferedReader之外没有其他方法吗? 我无法重新打开文件,因为只有我可以处理的对象是Reader。

[客户代码-无法修改]

PreparedStatement stmt = conn.prepareStatement("UPDATE t1 SET 
i2 = ? WHERE i1 = ? OR i1 = ?");
File file = new File("aaa.txt");
FileReader reader = new FileReader(file);
stmt.setCharacterStream(1, reader, (int)file.length());
stmt.setInt(2, 1); 
stmt.setInt(3, 5); 
stmt.execute();

[驱动程序代码]

public void setCharacterStream(int paramIdx, Reader reader, int length) throws SQLException
{
    setParameter_node1(paramIdx, reader, Types.CLOB); // node1
    setParameter_node2(paramIdx, reader, Types.CLOB); // node2 (How to reset reader??)
    setParameter_node3(paramIdx, reader, Types.CLOB); // node3 (How to reset reader??)
}

0 个答案:

没有答案