打印流
打印流的概述
打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式.
打印流根据流的分类:
l 字节打印流 :PrintStream
l 字符打印流 :PrintWriter
l 方法:
void print(String str): 输出任意类型的数据,
void println(String str): 输出任意类型的数据,自动写入换行操作,此方法简化了字符缓冲流中的newLine()方法,不用遍历使用,可以直接输出,提高效率
打印流:
分析:
* 1,创建流
* 2,写数据
* 3,关闭流
public static void main(String[] args) throws IOException {
// 明确数据源
FileReader fr=new FileReader("E:\io1127\hello.txt");
//
BufferedReader br=new BufferedReader(fr);
//明确目的地
FileWriter fw=new FileWriter("E:\io1127\hello2.txt");
//
PrintWriter pw=new PrintWriter(fw,true);
//开始复制
String line=null;
while((line=br.readLine())!=null){
pw.println(line);
}
//释放资源
br.close();
pw.close();
}
commons-IO
首先要加入classpath的第三方jar包内的class文件才能在项目中使用
创建lib文件夹
将commons-io.jar拷贝到lib文件夹
右键点击commons-io.jar,Build Path→Add to Build Path结束
FilenameUtils
这个工具类是用来处理文件名(包含文件路径)的,他可以轻松解决不同操作系统文件名称规范不同的问题
l 常用方法:
getExtension(String path):获取文件的扩展名;
getName(String filename):获取文件名;
isExtension(String fileName,String ext):判断fileName是否是ext后缀名;
用以判定两个文件是否以相同扩展名结尾 getExtension()方法
public static void main(String[] args) {
// 获取拓展名
String ext=FilenameUtils.getExtension("E:\io1127\hello.txt");
System.out.println(ext);
//或取文件名
String name=FilenameUtils.getName("E:\io1127\jdk.zip");
System.out.println(name);
//判断文件是否以某后缀扩展名结尾
boolean flag=FilenameUtils.isExtension(name, ext);
System.out.println(flag);
}
结果:
txt
jdk.zip
false
FileUtils
提供文件操作(移动文件,读取文件,检查文件是否存在等等)的方法。
l 常用方法:
readFileToString(File file):读取文件内容,并返回一个String;
writeStringToFile(File file,String content):将内容content写入到file中;
copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
copyFile(File srcFile,File destFile);文件复制
文件复制:
此方法可以将io1127文件复制到E盘下demo文件夹下的io1127文件夹,相比字符流中单字节复制与字节数组或者缓冲流方法的速度,这样的方法时间更短,效率更高
public static void main(String[] args) throws IOException {
//
FileUtils.copyDirectoryToDirectory(new File("E:\io1127"), new File("E:\demo"));
}