From f5728b1d24410f076777c1a6cd409c5e65d72051 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Sat, 03 Jul 2021 08:27:56 +0000
Subject: [PATCH] FileHandler aufgeraeumt

---
 src/de/uhilger/httpserver/base/HttpResponder.java |   38 +++++++++++++++++++-------------------
 1 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/de/uhilger/httpserver/base/HttpResponder.java b/src/de/uhilger/httpserver/base/HttpResponder.java
index 6d9a85e..69cc132 100644
--- a/src/de/uhilger/httpserver/base/HttpResponder.java
+++ b/src/de/uhilger/httpserver/base/HttpResponder.java
@@ -24,7 +24,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -82,23 +81,30 @@
       e.sendResponseHeaders(SC_OK, file.length());
       if(HTTP_GET.equalsIgnoreCase(e.getRequestMethod())) {
         InputStream in = new FileInputStream(file);
-        OutputStream os = e.getResponseBody();
-        byte[] b = new byte[4096];
-        int bytesRead = in.read(b);
-        //int b = in.read();
-        while (bytesRead > -1) {
-          os.write(b, 0, bytesRead);
-          bytesRead = in.read(b);
-        }
-        in.close();
-        os.flush();
-        os.close();
+        OutputStream os = e.getResponseBody();        
+        write(in, os);
+        finish(in, os);
       }
     } else {
       sendNotFound(e, file.getName());
     }
   }
 
+  public void write(InputStream in, OutputStream out) throws IOException {
+    byte[] b = new byte[4096];
+    int bytesRead = in.read(b);
+    while (bytesRead > -1) {
+      out.write(b, 0, bytesRead);
+      bytesRead = in.read(b);
+    }
+  }
+  
+  public void finish(InputStream in, OutputStream out) throws IOException {
+    in.close();
+    out.flush();
+    out.close();
+  }
+  
   /**
    * Die Header erzeugen, die unabhängig davon, ob der ganze 
    * Inhalt oder nur Teile davon ausgeliefert werden sollen, in der 
@@ -130,13 +136,7 @@
    * @throws IOException falls etwas schief geht entsteht dieser Fehler
    */
   public void sendNotFound(HttpExchange e, String fname) throws IOException {
-    OutputStream os = e.getResponseBody();
-    String response = fname + STR_NOT_FOUND;
-    byte[] bytes = response.getBytes(StandardCharsets.UTF_8);
-    e.sendResponseHeaders(SC_NOT_FOUND, bytes.length);
-    os.write(bytes);
-    os.flush();
-    os.close();
+    antwortSenden(e, SC_NOT_FOUND, fname + STR_NOT_FOUND);
   }  
 
   public void antwortSenden(HttpExchange exchange, int code, String antwort) throws IOException {

--
Gitblit v1.9.3