| | |
| | | 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; |
| | |
| | | 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 |