Lock changes

This commit is contained in:
Ilya 2023-08-20 19:51:18 +03:00
parent 6575592538
commit fcf12b8b72
2 changed files with 61 additions and 1 deletions

View File

@ -0,0 +1,55 @@
package ru.redguy.tftpserver.datasource;
import java.io.*;
import java.util.HashMap;
public class VirtualFileSystem implements IDataSource {
private HashMap<String, File> fileHashMap = new HashMap<>();
public VirtualFileSystem() {
}
public void addFile(String name, File file) {
fileHashMap.put(name, file);
}
@Override
public boolean isFileExists(String file) {
return fileHashMap.containsKey(file);
}
@Override
public boolean isFile(String file) {
return fileHashMap.containsKey(file);
}
@Override
public boolean isCanRead(String file) {
return fileHashMap.containsKey(file);
}
@Override
public OutputStream getOutputStream(String file) {
try {
return new FileOutputStream(fileHashMap.get(file));
} catch (FileNotFoundException e) {
return null;
}
}
@Override
public InputStream getInputStream(String file) {
try {
return new FileInputStream(fileHashMap.get(file));
} catch (FileNotFoundException e) {
return null;
}
}
@Override
public void delete(String file) {
fileHashMap.remove(file);
}
}

View File

@ -3,14 +3,19 @@ import ru.redguy.tftpserver.TFTPServer;
import ru.redguy.tftpserver.TFTPread;
import ru.redguy.tftpserver.TFTPwrite;
import ru.redguy.tftpserver.datasource.FileSystem;
import ru.redguy.tftpserver.datasource.IDataSource;
import ru.redguy.tftpserver.datasource.VirtualFileSystem;
import java.io.File;
import java.net.SocketException;
public class Main {
public static void main(String[] args) {
TFTPServer tftpServer = new TFTPServer();
VirtualFileSystem ds = new VirtualFileSystem();
ds.addFile("a.gradle",new File("build.gradle"));
try {
tftpServer.start(1000,false,new FileSystem("gradle"));
tftpServer.start(1000,false,ds);
} catch (SocketException e) {
e.printStackTrace();
}