3.1 newReaderSupplier(String value)
public static InputSupplier<StringReader>newReaderSupplier(String value)
该方法是将输入的String串,做成一个含有StringReader的InputSupplier对象,并返回。
3.2newReaderSupplier(InputSupplier, Charset)
public static InputSupplier<InputStreamReader>newReaderSupplier(InputSupplier<? extends InputStream> in, Charsetcharset)
该方法是根据输入工厂里的内容转化成包含InputStreamReader的InputSupplier的对象,并返回。
3.3 newWriterSupplier(OutputSupplier,Charset)
public static OutputSupplier<OutputStreamWriter> newWriterSupplier(OutputSupplier<?extends OutputStream> out, Charset charset)
该方法是将包含有OutputStream的输出工厂转化成编码格式为charset的包含OutputStreamWriter的输出工厂对象,并返回。
3.4 write(CharSequence from,OuputSupplier<W> to)
public static <W extends Appendable & Closeable> voidwrite(CharSequence from, OuputSupplier<W> to)
该方法是将一个字符串写入到一个Appendable对象里。
使用方法:
CharStream.write(“haha”,CharStreams.newWriterSupplier(Files.newOutputSupplier(f), CharSets.UTF-8));
3.5 copy(InputSupplier<R>from, OutputSupplier<W> to)
public static <R extends Readable & Closeable, W extendsAppendable & Closeable> long copy(InputSupplier<R> from,OutputSupplier<W> to)
该方法是打开InputSupplier提供的Readable对象,然后把数据拷贝到由OutputSupplier提供的Appendable对象里。
使用方法:
CharStreams.copy(CharStreams.newReaderSupplier("woshi hushichang"),CharStreams.newWriterSupplier(Files.newOutputStreamSupplier(file),Charsets.UTF_8));
3.6 copy(InputSupplier<R>from, Appendable to)
public static <R extends Readable & Closeable> longcopy(InputSupplier<R> from, Appendable to)
该方法是取出由InputSupplier提供的Readable对象的数据,拷贝到Appendable对象里,然后关闭输入流,不会关闭输出流。
使用方法:
StringBuffer stringBuffer = newStringBuffer("hehe");
CharStreams.copy(CharStreams.newReaderSupplier("nihao"), stringBuffer);
3.7 copy(Readable from, Appendableto)
public static long copy(Readable from, Appendable to)
该方法是把Readable对象里的数据全部拷贝到Appendable对象里。不会关闭任何对象。
使用方法:
BufferedReader bReader = new BufferedReader(newFileReader(file));
CharStreams.copy(bReader, stringBuffer);
bReader.close();
3.8 toString(Readable r)
public static String toString(Readable r)
该方法是将Readable对象里的数据转化成一个String串,不会关闭任何对象
使用方法:
BufferedReader bReader = new BufferedReader(newFileReader(file));
String str = CharStreams.toString(bReader);
bReader.close();
3.9 toString(InputSupplier<R>supplier)
public static <R extends Readable & Closeable> StringtoString(InputSupplier<R> supplier)
该方法是把InputSupplier提供的Readable对象里的数据转换成String,并返回。
使用方法:
String str =
CharStreams.toString(CharStreams.newReaderSupplier(Files.newInputStreamSupplier(file),Charsets.UTF_8))
3.10 readFirstLine(InputSupplier<R>supplier)
public static <R extends Readable & Closeable> StringreadFirstLine(InputSupplier<R> supplier)
该方法会读取由InputSupplier提供的Readable对象中的第一行数据,这一行数据不会包含终结符,但是会包含其他的空格之类的字符。
使用方法:
String str =
CharStreams.readFirstLine(CharStreams.newReaderSupplier(Files.newInputStreamSupplier(file),Charsets.UTF_8));
3.11readLines(InputSupplier<R> supplier)
public static <R extends Readable & Closeable>List<String> readLines(InputSupplier<R> supplier)
该方法和上边的差不多,只不过上边的读出第一行,这个读出所有的行
使用方法:
把上边的str换成List<String>就行了
3.12 readLines(Readable r)
public static List<String> readLines(Readable r)
该方法和上面的功能一行,只不过是从Readable对象里读取数据。
使用方法见上面。
3.13readLines(InputSupplier<R>, LineProcessor<T>)
public static <R extends Readable & Closeable, T> TreadLines(InputSupplier<R> supplier, LineProcessor<T> callback)
该方法是从InputSupplier提供的Readable或者Closeable对象里读取数据,如果读取完毕或者callback返回false就停止。而这个callback是可以自己控制的,自己定义检查的项目。
使用方法:
File file = new File("b.txt");
ArrayList<String> list =CharStreams.readLines(Files.newReaderSupplier(file, Charsets.UTF_8), newLineProcessor<ArrayList<String>>() {
ArrayList<String>result = new ArrayList<String>();
@Override
publicArrayList<String> getResult() {
//TODO Auto-generated method stub
returnresult;
}
@Override
publicboolean processLine(String line) throws IOException {
result.add(line.trim());
//TODO Auto-generated method stub
if(line.contains("haha"))
returnfalse;
elsereturn true;
}
});
3.14 join(Iterable suppliers)
public static InputSupplier<Reader> join(Iterable<? extendsInputSupplier<? extends Reader>> suppliers)
该方法是把一些InputSupplier提供的Reader中的数据汇聚到一个Reader对象里边,然后封装到一个InputSupplier里边,并返回。
使用方法上面已经介绍过类似的,这里不作介绍。
3.15 join(InputSupplier<?extends Reader> … suppliers)
public static InputSupplier<Reader> join(InputSupplier<?extends Reader> … suppliers)
该方法里的参数不定的,功能是跟上一个一样的。
3.16 skipFully(Reader reader, longn)
public static void skipFully(Reader reader, long n)
该方法是丢弃Reader对象里的前n个数据。
使用方法:
BufferedReader bReader = new BufferedReader(newFileReader("b.txt"));
CharStreams.skipFully(bReader, 2);
System.out.println(CharStreams.toString(bReader));
bReader.close();
3.17 asWriter(Appendable target)
public static Writer asWriter(Appendable target)
该方法是把Appendable对象当做一个Writer对象来操作,所有这个Writer对象操作的都相当于Appendable对象操作的。
使用方法:
StringBuffer stringBuffer = new StringBuffer();
Writer writer =CharStreams.asWriter(stringBuffer);
writer.append("abbb");
System.out.println(stringBuffer);