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).