Added functionality to read content from file and send it to queue for sending to the peer that requested it.
This commit is contained in:
@@ -1,10 +1,20 @@
|
||||
package vslab1.src.Request.Data;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import vslab1.src.FileReaderWriter.FileReaderWriter;
|
||||
import vslab1.src.FileReaderWriter.FileReaderWriter.EUpdateFlag;
|
||||
import vslab1.src.Peers.Peer;
|
||||
import vslab1.src.Sending.SendingQueue;
|
||||
import vslab1.src.Sending.Data.EDataType;
|
||||
import vslab1.src.Sending.Data.SendFileReply;
|
||||
|
||||
public record PullFileRequestRequest(Peer sender, Peer receiver, String fileName) implements Requestable {
|
||||
|
||||
@@ -25,16 +35,30 @@ public record PullFileRequestRequest(Peer sender, Peer receiver, String fileName
|
||||
|
||||
@Override
|
||||
public void execute(SendingQueue sendingQueue) {
|
||||
// TODO read filelist with paths and read file at path.
|
||||
// Write content to String and send data via sendingqueue to requesting peer
|
||||
// StringBuilder stringBuilder = new StringBuilder();
|
||||
// try (BufferedReader reader = new BufferedReader(new FileReader())) {
|
||||
// String line;
|
||||
// while ((line = reader.readLine()) != null) {
|
||||
// stringBuilder.append(line).append("\n");
|
||||
// }
|
||||
// }
|
||||
// return stringBuilder.toString();
|
||||
Peer thisPeer = FileReaderWriter.getThisPeer(EUpdateFlag.Update);
|
||||
|
||||
// fileName is key to filePath
|
||||
String filePath = thisPeer.filesMap().get(fileName);
|
||||
Path path = Paths.get(filePath);
|
||||
if (!Files.exists(path)) {
|
||||
System.err.println("File path doesn't exist.");
|
||||
} else {
|
||||
try {
|
||||
//Write content to String and send data via sendingqueue to requesting peer
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
BufferedReader reader = new BufferedReader(new FileReader(new File(filePath)));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
stringBuilder.append(line).append("\n");
|
||||
}
|
||||
reader.close();
|
||||
String fileContent = stringBuilder.toString();
|
||||
sendingQueue.add(new SendFileReply(thisPeer, sender, fileContent, fileName));
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user