All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sta.mutils.FileUtils Maven / Gradle / Ivy

There is a newer version: 1.11
Show newest version

package com.sta.mutils;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * 

Name: FileTools

*

Description: Hilfsklasse f?r Dateiverarbeitung. * * Urspr?nglicher Name: FileTools im Projekt Converter3. * Verlagert nach MUtils und umbenannt in FileUtils am 07.02.2020. * * Folgendes Problem ist aufgetreten: Bei Verwendung mit Web-Seiten(-Inhalten) und Auslieferung von Daten mit der copy-Methode * (z. B. Bilder, CSS-Dateien usw.), bricht zuweilen die Daten?bertragung ab (ggf. sogar gezielt durch den Client ausgel?st). * In der Folge kommt es also zu Fehlern beim write-Aufruf, danach funktioniert das fluch/close jedoch auch nicht, was wiederum * zu einem Fehler f?hrt, wodurch schlie?lich das close vom InputStream nicht mehr ausgef?hrt wurde. * * Korrektur: OutputStream und InputStream bei flush/close getrennt behandeln. * *

*

Comment: ... *

*

Copyright: Copyright (c) 2014, 2016, 2017, 2019-2021

*

Company: >StA-Soft<

* @author StA * @version 1.0 */ public final class FileUtils { /** * Hilfsmethode: Kopiert die Daten aus is nach os und schlie?t is und os bei Bedarf. * @param Typ des Ziel-Output-Streams * @param os Ziel-Output-Stream * @param is Quell-Input-Stream * @param close true: is und os schlie?en, false: beide nicht schlie?en * @return Ziel-Output-Stream (damit man z. B. bei einem ByteArrayOutputStream gleich toByteArray aufrufen kann) * @throws IOException im Fehlerfall */ public static T copy(T os, InputStream is, boolean close) throws IOException { try { final int MAX = 4 * 1024; byte[] b = new byte[MAX]; int len; while ((len = is.read(b)) > 0) { os.write(b, 0, len); } } finally { if (close) { try { os.flush(); os.close(); } catch (Exception ex) { // ignore } try { is.close(); } catch (Exception ex) { // ignore } } } return os; } /** * Datei kopieren. Quell- und Zieldatei werden nach dem Kopieren geschlossen. * @param dstfn Zieldateiname * @param srcfn Quelldateiname * @throws IOException im Fehlerfall */ public static void copy(String dstfn, String srcfn) throws IOException { copy(new FileOutputStream(dstfn), new FileInputStream(srcfn), true); } //=========================================================================== /** * Dummy-Constructor. */ private FileUtils() { } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy