나는 다음과 같은 코드, 그것은 다중 스레드 서버 코드의 일부이다이 : 내가 자바에서 "동기화"에 대해 읽은동기화 JAVA - 파일 잠금
File ff=new File("../key.txt");
if(ff.exists())
{
try(
BufferedReader br = new BufferedReader(new FileReader("..\key.txt"))) {
for(String line2; (line2 = br.readLine()) != null;) {
System.out.println("WE ARE READING 'KEY' ");
String a[]=line2.split("-");
k[i2]=a[0];
od[i2]=a[1];
ed[i2]=a[2];
System.out.println("key: "+k[i2]+" OD: "+od[i2]+" ED: "+ed[i2]);
}
}
}
하지만 난 방법을 생각하지 않았다 그것을 내 코드에 통합하면, 사용자가 그것을 사용할 때마다 "키"파일을 잠그고 싶습니다. 다른 사용자가 이미 보안상의 이유로 그것을 사용하고 있다면, 다른 사용자가 동시에 액세스 할 수 없습니다.
Offtopic :'FF' 변수는'ff'라고해야합니다. 관례에 따라 변수와 메소드는 소문자로 시작하고 클래스 또는 인터페이스는 대문자로 시작합니다. 동일한 경로를 두 번 입력하는 대신'ff' 변수를 사용하여'FileReader'를 생성 할 수 있습니다. – aalku
@ user270349 알다시피 그 테스트 코드 – Zame
이 경우에는 파일 잠금이 필요하며 동기화가 필요하지 않습니다 (스택 오버플로에서 Java 파일 잠금을 검색하면 많은 예제가 제공됩니다). 그러나 더 나은 질문은 한 서버 내의 여러 사용자가 동일한 파일을 공유하는 이유입니다. 그건 나쁜 생각이야. 대신 세션 특정 파일을 사용해보십시오 (File.createTmpFile 등 참조). – user1676075