Description
Get the contents of a
Reader
as a list of Strings, one entry per line.
License
Apache License
Parameter
Parameter | Description |
---|
input | the <code>Reader</code> to read from, not null |
Exception
Parameter | Description |
---|
NullPointerException | if the input is null |
IOException | if an I/O error occurs |
Return
the list of Strings, never null
Declaration
public static List<String> readLines(Reader input) throws IOException
Method Source Code
//package com.java2s;
/*/*w w w .j a v a 2 s .co m*/
* Copyright [2013-2014] eBay Software Foundation
*
* 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.
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
public class Main {
/**
* Reads the contents of a file line by line to a List of Strings.
* The file is always closed.
*
* @param file
* the file to read, must not be <code>null</code>
* @param encoding
* the encoding to use, <code>null</code> means platform default
* @return the list of Strings representing each line in the file, never <code>null</code>
* @throws IOException
* in case of an I/O error
* @throws java.io.UnsupportedEncodingException
* if the encoding is not supported by the VM
* @since Commons IO 1.1
*/
public static List<String> readLines(File file, String encoding) throws IOException {
InputStream in = null;
try {
in = openInputStream(file);
return readLines(in, encoding);
} finally {
if (in != null) {
in.close();
}
}
}
/**
* Reads the contents of a file line by line to a List of Strings using the default encoding for the VM.
* The file is always closed.
*
* @param file
* the file to read, must not be <code>null</code>
* @return the list of Strings representing each line in the file, never <code>null</code>
* @throws IOException
* in case of an I/O error
* @since Commons IO 1.3
*/
public static List<String> readLines(File file) throws IOException {
return readLines(file, null);
}
/**
* Get the contents of an <code>InputStream</code> as a list of Strings,
* one entry per line, using the default character encoding of the platform.
* <p>
* This method buffers the input internally, so there is no need to use a <code>BufferedInputStream</code>.
*
* @param input
* the <code>InputStream</code> to read from, not null
* @return the list of Strings, never null
* @throws NullPointerException
* if the input is null
* @throws IOException
* if an I/O error occurs
* @since Commons IO 1.1
*/
public static List<String> readLines(InputStream input) throws IOException {
InputStreamReader reader = new InputStreamReader(input);
return readLines(reader);
}
/**
* Get the contents of an <code>InputStream</code> as a list of Strings,
* one entry per line, using the specified character encoding.
* <p>
* Character encoding names can be found at <a href="http://www.iana.org/assignments/character-sets">IANA</a>.
* <p>
* This method buffers the input internally, so there is no need to use a <code>BufferedInputStream</code>.
*
* @param input
* the <code>InputStream</code> to read from, not null
* @param encoding
* the encoding to use, null means platform default
* @return the list of Strings, never null
* @throws NullPointerException
* if the input is null
* @throws IOException
* if an I/O error occurs
* @since Commons IO 1.1
*/
public static List<String> readLines(InputStream input, String encoding) throws IOException {
if (encoding == null) {
return readLines(input);
} else {
InputStreamReader reader = new InputStreamReader(input, encoding);
return readLines(reader);
}
}
/**
* Get the contents of a <code>Reader</code> as a list of Strings,
* one entry per line.
* <p>
* This method buffers the input internally, so there is no need to use a <code>BufferedReader</code>.
*
* @param input
* the <code>Reader</code> to read from, not null
* @return the list of Strings, never null
* @throws NullPointerException
* if the input is null
* @throws IOException
* if an I/O error occurs
* @since Commons IO 1.1
*/
public static List<String> readLines(Reader input) throws IOException {
BufferedReader reader = new BufferedReader(input);
List<String> list = new ArrayList<String>();
String line = reader.readLine();
while (line != null) {
list.add(line);
line = reader.readLine();
}
return list;
}
/**
* Opens a {@link FileInputStream} for the specified file, providing better
* error messages than simply calling <code>new FileInputStream(file)</code>.
* <p>
* At the end of the method either the stream will be successfully opened, or an exception will have been thrown.
* <p>
* An exception is thrown if the file does not exist. An exception is thrown if the file object exists but is a
* directory. An exception is thrown if the file exists but cannot be read.
*
* @param file
* the file to open for input, must not be <code>null</code>
* @return a new {@link FileInputStream} for the specified file
* @throws FileNotFoundException
* if the file does not exist
* @throws IOException
* if the file object is a directory
* @throws IOException
* if the file cannot be read
* @since Commons IO 1.3
*/
public static FileInputStream openInputStream(File file) throws IOException {
if (file.exists()) {
if (file.isDirectory()) {
throw new IOException("File '" + file + "' exists but is a directory");
}
if (file.canRead() == false) {
throw new IOException("File '" + file + "' cannot be read");
}
} else {
throw new FileNotFoundException("File '" + file + "' does not exist");
}
return new FileInputStream(file);
}
}
Related
- readLines(Reader input)
- readLines(Reader input)
- readLines(Reader input)
- readLines(Reader input)
- readLines(Reader input)
- readLines(Reader input)
- readLines(Reader input)
- readLines(Reader input)
- readLines(Reader input)