gpt4 book ai didi

java - JSch, session 打开时锁定文件

转载 作者:行者123 更新时间:2023-12-02 04:49:49 24 4
gpt4 key购买 nike

有什么方法可以锁定我正在使用 JSch sftp channel 读取的文件,以防止其他应用程序在 session 打开时修改它?

我遇到的问题:当我读取/写入文件时,其他一些应用程序更改了文件并导致错误。

目前我正在以这种方式读取文件:

ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");

InputStream stream = sftp.get("/some/file");
try {
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
// read from br
} finally {
stream.close();
}

最佳答案

而不是锁定文件(这可能会对您建议正在更改文件的任何应用程序产生不利影响),并假设您具有 ssh 访问权限和权限,您可以使用 ssh 命令将文件复制到临时文件中(如果打开) 'nix 系统:'cp/some/file//some/temp/file/'),这很可能比通过 scp 传输快得多。 (有关 exec 示例,请参阅 http://www.jcraft.com/jsch/examples/Exec.java.html)。从那里, scp-get 临时文件。最后,如有必要,通过其他 JSch exec 命令删除临时文件。

关于java - JSch, session 打开时锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29331228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com