package ru.pravvich.lesson_6.server;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {


    public static void main(String[] args) {

    }

    ServerSocket serverSocket;
    Socket socket;

    void initSocket() {
        try {
            this.serverSocket = new ServerSocket(5213);
            this.socket = this.serverSocket.accept();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    void download(String nameFile) {
        try (InputStream input = this.socket.getInputStream()){
            // Саздаём пустой массив байтов из available()
            // available() - возвращает колличество сейчас доступных байтов
            byte[] buffer = new byte[input.available()];
            // читаем
            int i = input.read(buffer);
            while (i != -1) {
                i = input.read(buffer);
            }

            File file = new File(Paths.REPO.getPath() + "/" + nameFile);

            // Саздаём OutputStream из файла  ...
            OutputStream outStream = new FileOutputStream(file);

            // Записываем массив байтов в файл
            outStream.write(buffer);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}

@@ -104,16 +104,56 @@
 ocket;%0A%0A
+import static java.lang.String.format;%0A%0A
 public c
@@ -213,17 +213,16 @@
 args) %7B%0A
-%0A
     %7D%0A%0A 
@@ -285,16 +285,22 @@
 id initS
+erverS
 ocket() 
@@ -371,16 +371,138 @@
 (5213);%0A
+        %7D catch (IOException e) %7B%0A            e.printStackTrace();%0A        %7D%0A    %7D%0A%0A    void initSocket() %7B%0A        try %7B%0A
         
@@ -736,67 +736,8 @@
 ))%7B%0A
-            // %D0%A1%D0%B0%D0%B7%D0%B4%D0%B0%D1%91%D0%BC %D0%BF%D1%83%D1%81%D1%82%D0%BE%D0%B9 %D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2 %D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2 %D0%B8%D0%B7 available()%0A
     
@@ -1011,21 +1011,211 @@
       %7D%0A
-%0A
     
+        this.createFile(nameFile,buffer);%0A        %7D catch (IOException e) %7B%0A            e.printStackTrace();%0A        %7D%0A    %7D%0A%0A    private boolean createFile(String nameFile, byte%5B%5D buffer) %7B%0A
         
@@ -1235,16 +1235,31 @@
 ew File(
+format(%22%25s/%25s%22,
 Paths.RE
@@ -1274,17 +1274,9 @@
 th()
- + %22/%22 + 
+,
 name
@@ -1276,35 +1276,35 @@
 (),nameFile)
+)
 ;%0A
-%0A
         
     // %D0%A1%D0%B0%D0%B7%D0%B4%D0%B0
@@ -1295,49 +1295,29 @@
     
-    // %D0%A1%D0%B0%D0%B7%D0%B4%D0%B0%D1%91%D0%BC OutputStream %D0%B8%D0%B7 %D1%84%D0%B0%D0%B9%D0%BB%D0%B0  ...
+if (!file.exists()) %7B
 %0A   
@@ -1325,16 +1325,21 @@
         
+try (
 OutputSt
@@ -1346,22 +1346,16 @@
 ream out
-Stream
  = new F
@@ -1379,23 +1379,20 @@
 ile)
-;%0A%0A    
+) %7B%0A
         
 // %D0%97
@@ -1391,64 +1391,19 @@
     
-// %D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC %D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2 %D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2 %D0%B2 %D1%84%D0%B0%D0%B9%D0%BB%0A            outStream
+        out
 .wri
@@ -1414,32 +1414,36 @@
 uffer);%0A        
+  
+  
 %7D catch (IOExcep
@@ -1444,32 +1444,36 @@
 OException e) %7B%0A
+    
             e.pr
@@ -1497,20 +1497,62 @@
         
-%7D%0A    %7D%0A%0A
+    %7D%0A        %7D%0A        return file.exists();%0A    %7D
 %0A%7D%0A

add lesson_6 download file for server