/******************************************************************************* * Copyright (c) 2011 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package com.openshift.client.utils; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.StringReader; /** * @author Andre Dietisheim */ public class FileUtils { private static final String JAVA_IO_TEMP = "java.io.tmpdir"; public static void writeTo(String data, String path) throws IOException { writeTo(data, new File(path)); } public static void writeTo(String data, File file) throws IOException { StringReader reader = null; FileWriter writer = null; try { writer = new FileWriter(file); reader = new StringReader(data); for (int character = -1; (character = reader.read()) != -1;) { writer.write(character); } } finally { if (writer != null) { writer.flush(); writer.close(); } if (reader != null) { reader.close(); } } } public static File createRandomTempFile() throws IOException { return createRandomTempFile(null); } public static File createRandomTempFile(String suffix) throws IOException { File file = File.createTempFile(createRandomFilename(), suffix); file.deleteOnExit(); return file; } public static File createRandomTempDirectory() throws IOException { File file = File.createTempFile(null, createRandomFilename()); file.mkdir(); file.deleteOnExit(); return file; } public static String createRandomFilename() { return String.valueOf(System.currentTimeMillis()); } public static void silentlyDelete(File file) { if (file == null) { return; } file.delete(); } public static String getTempDirectory() { return System.getProperty(JAVA_IO_TEMP); } public static String getTempDirFilePath(String name) { return new File(getTempDirectory(), name).getAbsolutePath(); } public static String getTempDirFilePath() { return getTempDirFilePath(createRandomFilename()); } }