diff options
author | Michael Bestas <mikeioannina@cyanogenmod.org> | 2016-06-13 21:02:03 +0300 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-06-16 10:44:36 -0700 |
commit | 522b0c3db16b061716078b202d3be5ae87ce06f0 (patch) | |
tree | ece82baa975ef248253ff3fcfbaa9f91d878011f | |
parent | 3f8b3b38620154d8203947bf972d9b1c06d35d5f (diff) | |
download | vendor_cmsdk-522b0c3db16b061716078b202d3be5ae87ce06f0.zip vendor_cmsdk-522b0c3db16b061716078b202d3be5ae87ce06f0.tar.gz vendor_cmsdk-522b0c3db16b061716078b202d3be5ae87ce06f0.tar.bz2 |
utils: Introduce FileUtils class
Change-Id: Icbfa068fa0db2ae28436063072dd4b576f1b2be1
-rw-r--r-- | sdk/src/java/org/cyanogenmod/internal/util/FileUtils.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/sdk/src/java/org/cyanogenmod/internal/util/FileUtils.java b/sdk/src/java/org/cyanogenmod/internal/util/FileUtils.java new file mode 100644 index 0000000..a861b08 --- /dev/null +++ b/sdk/src/java/org/cyanogenmod/internal/util/FileUtils.java @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.cyanogenmod.internal.util; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; + +public final class FileUtils { + private static final String TAG = "FileUtils"; + + private FileUtils() { + // This class is not supposed to be instantiated + } + + /** + * Reads the first line of text from the given file. + * Reference {@link BufferedReader#readLine()} for clarification on what a line is + * + * @return the read line contents, or null on failure + */ + public static String readOneLine(String fileName) { + String line = null; + BufferedReader reader = null; + + try { + reader = new BufferedReader(new FileReader(fileName), 512); + line = reader.readLine(); + } catch (FileNotFoundException e) { + Log.w(TAG, "No such file " + fileName + " for reading", e); + } catch (IOException e) { + Log.e(TAG, "Could not read from file " + fileName, e); + } finally { + try { + if (reader != null) { + reader.close(); + } + } catch (IOException e) { + // Ignored, not much we can do anyway + } + } + + return line; + } + + /** + * Writes the given value into the given file + * + * @return true on success, false on failure + */ + public static boolean writeLine(String fileName, String value) { + BufferedWriter writer = null; + + try { + writer = new BufferedWriter(new FileWriter(fileName)); + writer.write(value); + } catch (FileNotFoundException e) { + Log.w(TAG, "No such file " + fileName + " for writing", e); + return false; + } catch (IOException e) { + Log.e(TAG, "Could not write to file " + fileName, e); + return false; + } finally { + try { + if (writer != null) { + writer.close(); + } + } catch (IOException e) { + // Ignored, not much we can do anyway + } + } + + return true; + } + + /** + * Checks whether the given file is readable + * + * @return true if readable, false if not + */ + public static boolean isFileReadable(String fileName) { + final File file = new File(fileName); + return file.exists() && file.canRead(); + } + + /** + * Checks whether the given file is writable + * + * @return true if writable, false if not + */ + public static boolean isFileWritable(String fileName) { + final File file = new File(fileName); + return file.exists() && file.canWrite(); + } +} |