001 /* 002 * The contents of this file are subject to the Mozilla Public 003 * License Version 1.1 (the "License"); you may not use this file 004 * except in compliance with the License. You may obtain a copy of 005 * the License at http://www.mozilla.org/MPL/ 006 * 007 * Software distributed under the License is distributed on an "AS 008 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 009 * implied. See the License for the specific language governing 010 * rights and limitations under the License. 011 * 012 * The Original Code is Knowtator. 013 * 014 * The Initial Developer of the Original Code is University of Colorado. 015 * Copyright (C) 2005-2008. All Rights Reserved. 016 * 017 * Knowtator was developed by the Center for Computational Pharmacology 018 * (http://compbio.uchcs.edu) at the University of Colorado Health 019 * Sciences Center School of Medicine with support from the National 020 * Library of Medicine. 021 * 022 * Current information about Knowtator can be obtained at 023 * http://knowtator.sourceforge.net/ 024 * 025 * Contributor(s): 026 * Philip V. Ogren <philip@ogren.info> (Original Author) 027 */ 028 package edu.uchsc.ccp.util.io; 029 030 import java.io.BufferedReader; 031 import java.io.FileInputStream; 032 import java.io.IOException; 033 import java.io.InputStream; 034 import java.io.InputStreamReader; 035 import java.nio.charset.Charset; 036 import java.util.ArrayList; 037 import java.util.List; 038 039 public class FileReadingUtil { 040 041 /** 042 * Reads in a text file and returns it as an array of Strings. Risky from a 043 * scale point of view. 044 */ 045 public static String[] readFileLines(String infile) throws IOException { 046 return readFileLines(new FileInputStream(infile)); 047 } 048 049 public static String[] readFileLines(String infile, String comment) throws IOException { 050 return readFileLines(new FileInputStream(infile), comment); 051 } 052 053 public static String[] readFileLines(InputStream inputStream) throws IOException { 054 return readFileLines(inputStream, null); 055 } 056 057 public static String[] readFileLines(InputStream inputStream, String comment) throws IOException { 058 059 BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8"))); 060 061 String line = new String(); 062 List<String> lines = new ArrayList<String>(); 063 064 while ((line = reader.readLine()) != null) { 065 if (comment == null || !line.startsWith(comment)) 066 lines.add(line); 067 } 068 069 return (String[]) (lines.toArray(new String[lines.size()])); 070 071 } 072 073 public static String toString(String infile) throws IOException { 074 return toString(new FileInputStream(infile)); 075 } 076 077 public static String toString(InputStream inputStream) throws IOException { 078 BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 079 StringBuffer contents = new StringBuffer(); 080 081 String line = new String(); 082 while ((line = reader.readLine()) != null) { 083 contents.append(line + "\n"); 084 } 085 return contents.toString(); 086 } 087 088 public static void main(String[] args) { 089 try { 090 String[] lines = readFileLines(args[0]); 091 System.out.println("lines.length=" + lines.length); 092 for (int i = 0; i < lines.length; i++) { 093 System.out.println(lines[i]); 094 } 095 } catch (Exception exception) { 096 exception.printStackTrace(); 097 } 098 } 099 }