FileIO.java :  » App » boredom-coordinator » com » boredom » Guts » Android Open Source

Android Open Source » App » boredom coordinator 
boredom coordinator » com » boredom » Guts » FileIO.java
package com.boredom.Guts;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;

import java.io.IOException;

/**
 * Methods providing useful file I/O operations
 *
 * This class consists of entirely static properties, and should never be
 * instanced.
 */
public class FileIO {
  /**
   * Start of path, subject to change depending on choices about
   * Android's directory structure.
   */
  private static final String root = "/";

  /**
   * Determine the pathname for the directory a block of metadata
   *
   * @param metaData the metadata from the start of the file
   * @return the pathname of the directory to write the file to
   */
  private static String findPathname (MetaData metaData) {
    return root + metaData.getInterestGroup() + "/" +
      metaData.getType() + "/" + metaData.getSource() + "/";
  }

  /**
   * Write a string to a file as dictated by its metadata.
   *
   * Attempts to write a string to a file. The metadata dictates where
   * the file will be situated in the directory tree, is used to
   * determine if the file already exists, and whether it should be
   * overwritten.
   *
   * @param metaData The file's metaData
   * @param contents The actual contents to be in the file
   * @return true if the file was written, false if a newer version exists
   */
  public static boolean write (MetaData metaData, String contents) {
    String pathname;

    pathname = findPathname (metaData);

    return true;
  }

  /**
   * Write a stream to a file as dictated by its metadata.
   *
   * Attempts to write a stream to a file. The metadata dictates where
   * the file will be situated in the directory tree, is used to
   * determine if the file already exists, and whether it should be
   * overwritten.
   *
   * @param metaData The file's metaData
   * @param contents The stream representing the file, pointing to the
   *  section just after the metadata
   * @return true if the file was written, false if a newer version exists
   */
  public static boolean write (MetaData metaData, InputStream contents) {
    String pathname;

    pathname = findPathname (metaData);

    return true;
  }

  /**
   * Write a string to a file, parsing metadata
   *
   * Attempts to write a string to a file. The metadata dictates where
   * the file will be situated in the directory tree, is used to
   * determine if the file already exists, and whether it should be
   * overwritten.
   *
   * @param string The string to be written to the file
   * @return true if the file was written, false if a newer version exists
   */
  public boolean save (String string) throws IOException {
    InputStream is
      = new ByteArrayInputStream (string.getBytes());
    MetaData metaData;

    metaData = new MetaData (is);

    return write (metaData, is);
  }

  /**
   * Write a stream to a file, parsing metadata
   *
   * Attempts to write a stream to a file. The metadata dictates where
   * the file will be situated in the directory tree, is used to
   * determine if the file already exists, and whether it should be
   * overwritten.
   *
   * @param stream The stream to be written to the file
   * @return true if the file was written, false if a newer version exists
   */
  public boolean save (InputStream stream) throws IOException {
    String pathname;
    MetaData metaData;

    metaData = new MetaData (stream);

    return write (metaData, stream);
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.