IO
流在我们日常工作中也用得比较多,尽管java已经给我们提供了丰富的API。
但我们不得不每次读取文件,或者写入文件之后,写一些重复的的代码。手动在finally
代码块中关闭流,不然可能会造成内存溢出
。
有个好消息是:如果你使用org.apache.commons.io
包下的IOUtils
类,会节省大量的时间。
{//读取文件
String str = IOUtils.toString(new FileInputStream("/home/test_a.txt"), "UTF-8");
System.out.println(str);
}
{//写入文件
String str = "111test_b111\n" +
"222test_b222";
IOUtils.write(str, new FileOutputStream("/home/test_b.txt"), StandardCharsets.UTF_8.name());
}
{//文件拷贝
IOUtils.copy(new FileInputStream("/home/test_a.txt"), new FileOutputStream("/home/test_b.txt"));
}
{//读取文件内容到字节数组
byte[] bytes = IOUtils.toByteArray(new FileInputStream("/home/test_a.txt"));
}