java 文件鎖的簡單實(shí)現(xiàn)
java 文件鎖的簡單實(shí)現(xiàn)
java文件鎖的功能,隱私文件及安全性的提升,實(shí)現(xiàn)起來不難,這里貼下實(shí)現(xiàn)代碼:
實(shí)例代碼:
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; public class FileLocker { public static void main(String[] args) throws IOException { File f = new File("aaa.txt"); System.out.println(getFileContent(f) + 1);// no lock FileLock lock = getFileLock(f);// lock System.out.println(getFileContent(f) + 2); lock.release();// lock release System.out.println(getFileContent(f) + 3);// no lock } /** * get file content. * * @param file * @return */ public static String getFileContent(File file) { String line = ""; String content = ""; try { BufferedReader bf = new BufferedReader(new InputStreamReader( new FileInputStream(file))); while ((line = bf.readLine()) != null) { content += line; } } catch (FileNotFoundException e) { content = "ERROR "; } catch (IOException e) { content = "ERROR "; } return content; } /** * get lock. * * @param file * @return * @throws IOException */ public static FileLock getFileLock(File file) throws IOException { RandomAccessFile fi = new RandomAccessFile(file, "rw"); FileChannel fc = fi.getChannel(); return fc.tryLock(); } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
IntelliJ IDEA 使用經(jīng)驗(yàn)總結(jié)(推薦)
這篇文章主要介紹了IntelliJ IDEA 使用經(jīng)驗(yàn)總結(jié),非常不錯(cuò),具有參考價(jià)值,需要的朋友可以參考下2018-02-02springboot整合RabbitMQ發(fā)送短信的實(shí)現(xiàn)
本文會和SpringBoot做整合,實(shí)現(xiàn)RabbitMQ發(fā)送短信,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05SpringBoot+WebSocket搭建簡單的多人聊天系統(tǒng)
WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議。這是一種比較官方的說法,簡單點(diǎn)來說就是,在一次TCP連接中,通信的雙方可以相互通信。這篇文章主要介紹了SpringBoot+WebSocket搭建簡單的多人聊天系統(tǒng),需要的朋友可以參考下2019-10-10java中關(guān)于控件JTextArea的幾個(gè)方法
這篇文章主要介紹了java中關(guān)于控件JTextArea的幾個(gè)方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08如何基于SpringWeb?MultipartFile實(shí)現(xiàn)文件上傳、下載功能
在做項(xiàng)目時(shí),后端經(jīng)常采用上傳文件組件MultipartFile,下面這篇文章主要給大家介紹了關(guān)于如何基于SpringWeb?MultipartFile實(shí)現(xiàn)文件上傳、下載功能的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07利用java、js或mysql計(jì)算高德地圖中兩坐標(biāo)之間的距離
最近因?yàn)楣ぷ鞯男枨?,需要?jì)算出高德地圖中兩個(gè)坐標(biāo)的距離,通過查找相關(guān)資料發(fā)現(xiàn)了多種實(shí)現(xiàn)的方法,下面這篇文章主要給大家介紹了關(guān)于利用java、js或mysql計(jì)算高德地圖中兩坐標(biāo)之間距離的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-10-10SpringBoot+ECharts是如何實(shí)現(xiàn)數(shù)據(jù)可視化的
今天帶大家學(xué)習(xí)的是關(guān)于Java的相關(guān)知識,文章圍繞著SpringBoot+ECharts怎么實(shí)現(xiàn)數(shù)據(jù)可視化展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Java算法之BFS,DFS,動態(tài)規(guī)劃和貪心算法的實(shí)現(xiàn)
廣度優(yōu)先搜索(BFS)和深度優(yōu)先搜索(DFS)是圖遍歷算法中最常見的兩種算法,主要用于解決搜索和遍歷問題。動態(tài)規(guī)劃和貪心算法則用來解決優(yōu)化問題。本文就來看看這些算法的具體實(shí)現(xiàn)吧2023-04-04