From f91fd7f2bb1881634133564b348b449eaaa6d2a3 Mon Sep 17 00:00:00 2001 From: marcusferl Date: Tue, 5 May 2020 15:32:48 +0200 Subject: [PATCH] 123 --- Anagramm/src/BuchstabenAnagramme.java | 2 +- .../src/MehrereTexteEinlesen.java | 58 ++++++++++++++ .../de/downloadmanager/DownloadManager.java | 79 +++++++++++++++++++ .../src/de/downloadmanager/Main.java | 15 ++++ 4 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 Udemy-Java-Kurs-Streams/src/MehrereTexteEinlesen.java create mode 100644 Udemy-Java-Kurs-Streams/src/de/downloadmanager/DownloadManager.java create mode 100644 Udemy-Java-Kurs-Streams/src/de/downloadmanager/Main.java diff --git a/Anagramm/src/BuchstabenAnagramme.java b/Anagramm/src/BuchstabenAnagramme.java index 4eaca98..3ef09de 100644 --- a/Anagramm/src/BuchstabenAnagramme.java +++ b/Anagramm/src/BuchstabenAnagramme.java @@ -40,7 +40,7 @@ public class BuchstabenAnagramme { if (word.indexOf(letter) > 0 && foundWords.indexOf(w) < 0 && w.length() <= wordChars.length && notTooManyLetters(w.toCharArray(), wordChars) && sameLetters(w.toCharArray(), wordChars)) { foundWords.add(w); - System.out.println(foundWords.get(foundWords.size() - 1)); + System.out.print("[" + foundWords.get(foundWords.size() - 1) + "]"); } } diff --git a/Udemy-Java-Kurs-Streams/src/MehrereTexteEinlesen.java b/Udemy-Java-Kurs-Streams/src/MehrereTexteEinlesen.java new file mode 100644 index 0000000..fa15210 --- /dev/null +++ b/Udemy-Java-Kurs-Streams/src/MehrereTexteEinlesen.java @@ -0,0 +1,58 @@ +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.SequenceInputStream; + +public class MehrereTexteEinlesen { + + public static void main(String[] args) throws IOException { + + + File file1 = new File("C:\\Users\\Spike\\Desktop\\text1.txt"); + File file2 = new File("C:\\Users\\Spike\\Desktop\\text2.txt"); + + // Einlesen in bytes + InputStream iStream1 = null; + InputStream iStream2 = null; + + SequenceInputStream sInputStream = null; + + OutputStream fOutputStream = new FileOutputStream("C:\\Users\\Spike\\Desktop\\text3.txt"); + + int i; + char c; + + try { + + // gehe zu file 1 \ 2 und lese per byte ein + iStream1 = new FileInputStream(file1); + iStream2 = new FileInputStream(file2); + + // Gleichzeitig einlesen + sInputStream = new SequenceInputStream(iStream1, iStream2); + + // Während eingelesen wird, werden bytes in in gespeichert und in buchstaben umgewandelt + + while((i = sInputStream.read()) != -1){ + c = (char) i; + System.out.print(c); + // Schreibt in die datei + fOutputStream.write(i); + } + + + } catch (Exception e) { + e.printStackTrace(); + }finally { + iStream1.close(); + iStream2.close(); + sInputStream.close(); + fOutputStream.close(); + } + + } + +} diff --git a/Udemy-Java-Kurs-Streams/src/de/downloadmanager/DownloadManager.java b/Udemy-Java-Kurs-Streams/src/de/downloadmanager/DownloadManager.java new file mode 100644 index 0000000..2d54e21 --- /dev/null +++ b/Udemy-Java-Kurs-Streams/src/de/downloadmanager/DownloadManager.java @@ -0,0 +1,79 @@ +package de.downloadmanager; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; + //Implementiert Runable interface um ein Thread zu starten +public class DownloadManager implements Runnable { + + private String link; // Downloadlink + private File outputFile;// Ort wo File gespeichert wird + + private String fileSeperator = System.getProperty("file.seperator"); // Fileseperator erkennt das system + private String downloadFolderPath = "C:\\Users\\Spike\\Desktop\\Testdownloads"; + + //fileSeperator + "Users" + fileSeperator + "Spike" + fileSeperator + "Desktop" + fileSeperator + "TestDownloads"; + + + private File defaultDownloadFolder = new File(downloadFolderPath);//Standard Ordner setzen + + public DownloadManager(String link) { + this.link = link; + + + // Prüft ob Ordner vorhanden wenn nicht wird er erstellt + + if(! defaultDownloadFolder.exists()) { + defaultDownloadFolder.mkdirs(); + } + + + + + } + + @Override + public void run() { + try { + + URL url = new URL(link); + //Casten, damit die Url in hConnection gespeichert wird + HttpURLConnection hConnection = (HttpURLConnection)url.openConnection(); + + // Inputstream -> Bytes + + BufferedInputStream bInputstream = new BufferedInputStream(hConnection.getInputStream()); + + // Datei schreiben / erstellen + + outputFile = new File(defaultDownloadFolder, "datei.mp3"); + OutputStream outputStream = new FileOutputStream(outputFile); + BufferedOutputStream bOutputStream = new BufferedOutputStream(outputStream, 1024); // 1024 Wie groß der Puffer sein soll + + byte[] buffer = new byte[1024]; + + int downloaded = 0; + int readByte = 0; + + while((readByte = bInputstream.read(buffer, 0, 1024)) >= 0) { + bOutputStream.write(buffer, 0,readByte); + downloaded += readByte; + + System.out.println("Bereits " + downloaded + " Bytes " + " geladen"); + } + bOutputStream.close(); + bInputstream.close(); + System.out.println("Download erfolgreich!"); + + } catch (Exception e) { + e.printStackTrace(); + } + + } + + +} diff --git a/Udemy-Java-Kurs-Streams/src/de/downloadmanager/Main.java b/Udemy-Java-Kurs-Streams/src/de/downloadmanager/Main.java new file mode 100644 index 0000000..2b3d569 --- /dev/null +++ b/Udemy-Java-Kurs-Streams/src/de/downloadmanager/Main.java @@ -0,0 +1,15 @@ +package de.downloadmanager; + +public class Main { + + public static void main(String[] args) { + // TODO Auto-generated method stub + +// DownloadManager dManager = new DownloadManager("Test"); + + String downloadLink = "https://audiobible.com/templates/__custom/images/audio/kjv-scourby-genesis-1.mp3"; + + new Thread(new DownloadManager(downloadLink)).start(); + } + +}