diff --git a/src/main/java/ru/redguy/tftpserver/datasource/VirtualFileSystem.java b/src/main/java/ru/redguy/tftpserver/datasource/VirtualFileSystem.java new file mode 100644 index 0000000..4552ec3 --- /dev/null +++ b/src/main/java/ru/redguy/tftpserver/datasource/VirtualFileSystem.java @@ -0,0 +1,55 @@ +package ru.redguy.tftpserver.datasource; + +import java.io.*; +import java.util.HashMap; + +public class VirtualFileSystem implements IDataSource { + + private HashMap 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); + } +} diff --git a/src/test/java/Main.java b/src/test/java/Main.java index 29df5c8..b67c15d 100644 --- a/src/test/java/Main.java +++ b/src/test/java/Main.java @@ -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(); }