1)
codice:
public class MagServer extends Thread
{
public static Map fileLock = new HashMap();
private Socket client;
...
2)
codice:
if (comando.equals("A"))
{
String nomeFile = ....; //il client deve dirti quale file vuole andare a vedere
if(MagServer.fileLock.get(nomeFile) {
//implementa il comportamento dell'applicazione
//se il file e' bloccato (ad esempio, rispondi con un errore)
} else {
//qui c'è il codice di lettura del file pippo.txt e poi invierà il contenuto al client
}
Stessa identica cosa per quanto riguarda la parte di modifica dei file.
3) A te serve avere l'elenco dei possibili files che il client puo' richiedere di modificare/visualizzare per riempire la mappa fileLock all'inizio (con entries <String nomefile, Boolean true/false>). Magari, piuttosto che creare un file di testo che puo' essere scomodo o difficilmente mantenibile, puoi ricavare l'elenco dei files direttamente "guardando" nel file system e tirando fuori l'elenco dei files presenti in una determinata cartella (e/o che hanno un certo nome, e/o che hanno una certa estensione, ecc. ecc.).
Volendo puoi pensare anche ad un sistema di refresh della mappa in modo che si accorga di eventuali files che vengono aggiunti o rimossi dal sistema (anche da processi esterni alla tua applicazione).