java 文件鎖的簡單實現(xiàn)
java 文件鎖的簡單實現(xiàn)
java文件鎖的功能,隱私文件及安全性的提升,實現(xiàn)起來不難,這里貼下實現(xiàn)代碼:
實例代碼:
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(); } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
IntelliJ IDEA 使用經(jīng)驗總結(推薦)
這篇文章主要介紹了IntelliJ IDEA 使用經(jīng)驗總結,非常不錯,具有參考價值,需要的朋友可以參考下2018-02-02springboot整合RabbitMQ發(fā)送短信的實現(xiàn)
本文會和SpringBoot做整合,實現(xiàn)RabbitMQ發(fā)送短信,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-05-05SpringBoot+WebSocket搭建簡單的多人聊天系統(tǒng)
WebSocket是一種在單個TCP連接上進行全雙工通信的協(xié)議。這是一種比較官方的說法,簡單點來說就是,在一次TCP連接中,通信的雙方可以相互通信。這篇文章主要介紹了SpringBoot+WebSocket搭建簡單的多人聊天系統(tǒng),需要的朋友可以參考下2019-10-10如何基于SpringWeb?MultipartFile實現(xiàn)文件上傳、下載功能
在做項目時,后端經(jīng)常采用上傳文件組件MultipartFile,下面這篇文章主要給大家介紹了關于如何基于SpringWeb?MultipartFile實現(xiàn)文件上傳、下載功能的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-07-07利用java、js或mysql計算高德地圖中兩坐標之間的距離
最近因為工作的需求,需要計算出高德地圖中兩個坐標的距離,通過查找相關資料發(fā)現(xiàn)了多種實現(xiàn)的方法,下面這篇文章主要給大家介紹了關于利用java、js或mysql計算高德地圖中兩坐標之間距離的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。2017-10-10SpringBoot+ECharts是如何實現(xiàn)數(shù)據(jù)可視化的
今天帶大家學習的是關于Java的相關知識,文章圍繞著SpringBoot+ECharts怎么實現(xiàn)數(shù)據(jù)可視化展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06Java算法之BFS,DFS,動態(tài)規(guī)劃和貪心算法的實現(xiàn)
廣度優(yōu)先搜索(BFS)和深度優(yōu)先搜索(DFS)是圖遍歷算法中最常見的兩種算法,主要用于解決搜索和遍歷問題。動態(tài)規(guī)劃和貪心算法則用來解決優(yōu)化問題。本文就來看看這些算法的具體實現(xiàn)吧2023-04-04