通过Java Servlet访问时,同步是否保护文件完整性?

时间:2018-07-20 00:10:32

标签: java servlets concurrency

我已经使用Spring Boot创建了Java Web应用程序。我正在使用文件而不是数据库进行存储(这是必需的)。我已经实现了同步概念,以防止文件同时写入多个文件。

我的示例代码如下:

读取文件:

public class ReadFile{

 public Json readFile() { 
BufferedReader br = new BufferedReader(
               Files.newBufferedReader(Paths.get("sample.json")));
        //Check for null json file
        example = gson.fromJson(br, Json.class);
        br.close();
}

}

父类:

public class ParentClass extends HttpServlet{

 public ReadFile file= new ReadFile();
public Json example = file.readFile();

public synchronized void writeToFile(Json example){
//code for writing to file
}
}

}

儿童班1:

public ChildClass1 extends ParentClass {

public void doGet(){
    //code to read example object
}

public synchronized saveContentstoFile(){
    //do some changes to example object
    writeToFile(example);
}

}

儿童班2:

public ChildClass2 extends ParentClass {

public void doGet(){
    //code to read example object
}

public synchronized saveContentstoFile(){
    //do some changes to example object
    writeToFile(example);
}

}

在上述所有类中,我都使用“ example”作为共享对象,用于保存所有3个类之间的文件内容。

在有限的测试中,我还没有发现任何文件损坏问题。我是新来使用这个概念的人。任何人都可以发表评论,如果这是正确的方法,或者有任何未发现的问题?

如果不是,哪种方法可以最好地防止文件损坏?

0 个答案:

没有答案