summaryrefslogtreecommitdiff
path: root/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/utils/FileUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/utils/FileUtils.java')
-rw-r--r--eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/utils/FileUtils.java257
1 files changed, 139 insertions, 118 deletions
diff --git a/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/utils/FileUtils.java b/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/utils/FileUtils.java
index 6ac51ac4..943d3dad 100644
--- a/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/utils/FileUtils.java
+++ b/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/utils/FileUtils.java
@@ -1,29 +1,22 @@
-/*******************************************************************************
- * Copyright 2017 Graz University of Technology
- * EAAF-Core Components has been developed in a cooperation between EGIZ,
- * A-SIT Plus, A-SIT, and Graz University of Technology.
+/*
+ * Copyright 2017 Graz University of Technology EAAF-Core Components has been developed in a
+ * cooperation between EGIZ, A-SIT Plus, A-SIT, and Graz University of Technology.
*
- * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
+ * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European
+ * Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in
+ * compliance with the Licence. You may obtain a copy of the Licence at:
* https://joinup.ec.europa.eu/news/understanding-eupl-v12
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- *******************************************************************************/
-/*******************************************************************************
- *******************************************************************************/
-/*******************************************************************************
- *******************************************************************************/
+ * Unless required by applicable law or agreed to in writing, software distributed under the Licence
+ * is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the Licence for the specific language governing permissions and limitations under
+ * the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text file for details on the
+ * various modules and licenses. The "NOTICE" text file is part of the distribution. Any derivative
+ * works that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+
package at.gv.egiz.eaaf.core.impl.utils;
@@ -38,22 +31,22 @@ import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
-
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FileUtils {
- private static final Logger log = LoggerFactory.getLogger(FileUtils.class);
-
-
+ private static final Logger log = LoggerFactory.getLogger(FileUtils.class);
+
+
/**
* Reads a file, given by URL, into a byte array.
+ *
* @param urlString file URL
* @return file content
* @throws IOException on any exception thrown
*/
- public static byte[] readURL(String urlString) throws IOException {
+ public static byte[] readUrl(final String urlString) throws IOException {
final URL url = new URL(urlString);
final InputStream in = new BufferedInputStream(url.openStream());
final byte[] content = StreamUtils.readStream(in);
@@ -63,114 +56,142 @@ public class FileUtils {
/**
* Reads a file from a resource.
+ *
* @param name resource name
* @return file content as a byte array
* @throws IOException on any exception thrown
*/
- public static byte[] readResource(String name) throws IOException {
+ public static byte[] readResource(final String name) throws IOException {
final ClassLoader cl = FileUtils.class.getClassLoader();
final BufferedInputStream in = new BufferedInputStream(cl.getResourceAsStream(name));
final byte[] content = StreamUtils.readStream(in);
in.close();
return content;
}
+
/**
* Reads a file from a resource.
+ *
* @param name filename
* @param encoding character encoding
* @return file content
* @throws IOException on any exception thrown
*/
- public static String readResource(String name, String encoding) throws IOException {
+ public static String readResource(final String name, final String encoding) throws IOException {
final byte[] content = readResource(name);
return new String(content, encoding);
}
-
-
- /**
- * Returns the absolute URL of a given url which is relative to the parameter root
- * @param url
- * @param root
- * @return String
- * @throws MalformedURLException
- */
- public static String makeAbsoluteURL(String url, URI root) throws MalformedURLException {
- if (root != null)
- return makeAbsoluteURL(url, root.toURL().toString());
- else
- return makeAbsoluteURL(url, StringUtils.EMPTY);
-
- }
-
- /**
- * Returns the absolute URL of a given url which is relative to the parameter root
- * @param url
- * @param root
- * @return String
- */
- public static String makeAbsoluteURL(String url, String root) {
- //if url is relative to rootConfigFileDirName make it absolute
-
- log.trace("Making AbsoluteURL URL: " + url + " Root-Path: " + root);
-
- if (StringUtils.isEmpty(root))
- root = null;
-
- File keyFile;
- String newURL = url;
-
- if(null == url) return null;
-
- if (url.startsWith("http:") || url.startsWith("https:") || url.startsWith("file:")
- || url.startsWith("ftp:") || url.startsWith("classpath:")) {
- return url;
-
- } else {
- // check if absolute - if not make it absolute
- keyFile = new File(url);
- if (!keyFile.isAbsolute()) {
- keyFile = new File(root, url);
-
- if (keyFile.toString().startsWith("file:"))
- newURL = keyFile.toString();
-
- else
- newURL = keyFile.toURI().toString();
-
- }
- return newURL;
- }
- }
-
-
- private static void copy( InputStream fis, OutputStream fos )
- {
- try
- {
- final byte[] buffer = new byte[ 0xFFFF ];
- for ( int len; (len = fis.read(buffer)) != -1; )
- fos.write( buffer, 0, len );
- }
- catch( final IOException e ) {
- System.err.println( e );
- }
- finally {
- if ( fis != null )
- try { fis.close(); } catch ( final IOException e ) { e.printStackTrace(); }
- if ( fos != null )
- try { fos.close(); } catch ( final IOException e ) { e.printStackTrace(); }
- }
- }
-
- public static void copyFile(File src, File dest)
- {
- try
- {
- copy( new FileInputStream( src ), new FileOutputStream( dest ) );
- }
- catch( final IOException e ) {
- e.printStackTrace();
- }
- }
-
+
+
+ /**
+ * Returns the absolute URL of a given url which is relative to the parameter root.
+ *
+ * @param url Filepath
+ * @param root configuration root context
+ * @return absolut filepath
+ * @throws MalformedURLException In case of a filepath error
+ */
+ public static String makeAbsoluteUrl(final String url, final URI root)
+ throws MalformedURLException {
+ if (root != null) {
+ return makeAbsoluteUrl(url, root.toURL().toString());
+ } else {
+ return makeAbsoluteUrl(url, StringUtils.EMPTY);
+ }
+
+ }
+
+ /**
+ * Returns the absolute URL of a given url which is relative to the parameter root.
+ *
+ * @param url Filepath
+ * @param root configuration root context
+ * @return absolut filepath
+ */
+ public static String makeAbsoluteUrl(final String url, String root) {
+ // if url is relative to rootConfigFileDirName make it absolute
+
+ log.trace("Making AbsoluteURL URL: " + url + " Root-Path: " + root);
+
+ if (StringUtils.isEmpty(root)) {
+ root = null;
+ }
+
+ File keyFile;
+ String newUrl = url;
+
+ if (null == url) {
+ return null;
+ }
+
+ if (url.startsWith("http:") || url.startsWith("https:") || url.startsWith("file:")
+ || url.startsWith("ftp:") || url.startsWith("classpath:")) {
+ return url;
+
+ } else {
+ // check if absolute - if not make it absolute
+ keyFile = new File(url);
+ if (!keyFile.isAbsolute()) {
+ keyFile = new File(root, url);
+
+ if (keyFile.toString().startsWith("file:")) {
+ newUrl = keyFile.toString();
+ } else {
+ newUrl = keyFile.toURI().toString();
+ }
+
+ }
+ return newUrl;
+ }
+ }
+
+
+ private static void copy(final InputStream fis, final OutputStream fos) {
+ try {
+ final byte[] buffer = new byte[0xFFFF];
+ for (int len; (len = fis.read(buffer)) != -1;) {
+ fos.write(buffer, 0, len);
+ }
+ } catch (final IOException e) {
+ System.err.println(e);
+
+ }
+ }
+
+ /**
+ * Copy file from source to destination.
+ *
+ * @param src File source
+ * @param dest file destination
+ */
+ public static void copyFile(final File src, final File dest) {
+ InputStream fis = null;
+ OutputStream fos = null;
+
+ try {
+ fis = new FileInputStream(src);
+ fos = new FileOutputStream(src);
+ copy(fis, fos);
+
+ } catch (final IOException e) {
+ e.printStackTrace();
+
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (fos != null) {
+ try {
+ fos.close();
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
}