io流--打印流
打印流的概述:只有输出(目的地)
打印流
添加输出数据的功能,使它们能够方便地打印各种数据值表示形式.
打印流根据流的分类:
字节打印流 PrintStream
字符打印流 PrintWriter
l 方法:
void print(String str): 输出任意类型的数据,
void println(String str): 输出任意类型的数据,自动写入换行操作
package com.oracle.demo03; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; public class Demo01 { public static void main(String[] args) throws FileNotFoundException { // 明确目的地 FileOutputStream fos=new FileOutputStream("D:\\demo0611\\abc.txt",true); //创建打印流 PrintWriterpw=newPrintWriter(fos,true);//加true是自动刷新,不需要加fluch //.print()打印不换行 pw.print("你好"); //.println()打印换行 pw.println("郭达"); pw.println("hellow"); //释放资源 //pw.close() }
1.1 打印流完成数据自动刷新
可以通过构造方法,完成文件数据的自动刷新功能
l 构造方法:
l 开启文件自动刷新写入功能
public PrintWriter(OutputStream out, boolean autoFlush)
public PrintWriter(Writer out, boolean autoFlush)
}
package com.oracle.demo03; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; public class copy { public static void main(String[] args) throws IOException { //明确数据源 FileReader fr=new FileReader("D:\\demo0611\\abc.txt"); //让添加缓冲流 BufferedReader br=new BufferedReader (fr); //明确目的地 FileWriter fw= new FileWriter("D:\\demo0611\\b\\abc.txt"); //添加打印流 PrintWriter pw=new PrintWriter (fw,true); //开始复制 String line=null;// while((line=br.readLine())!=null){ pw.println(line); } //释放资源 br.close(); pw.close(); } l }
commons-IO
导入classpath
加入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后缀名;
package com.oracle.demo03; import org.apache.commons.io.FilenameUtils; public class demo02 { public static void main(String[] args) { // 获取后缀名 String ext=FilenameUtils.getExtension("D:\\demo0611\\jdbc1.8.zip"); System.out.println("后缀名为: "+ext); //获取文件名 String filename=FilenameUtils.getName("D:\\demo0611\\jdbc1.8.zip"); System.out.println("文件名: "+filename); //结果 /*后缀名为: zip 文件名: jdbc1.8.zip*/ ////判断是否以txt为结尾 boolean flag=FilenameUtils.isExtension("D:\\demo0611\\jdbc1.8.zip", "txt"); System.out.println(flag);//false } }
FileUtils
提供文件操作(移动文件,读取文件,检查文件是否存在等等)的方法。
l 常用方法:
readFileToString(File file):读取文件内容,并返回一个String;
writeStringToFile(File file,String content):将内容content写入到file中;
copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
copyFile(File srcFile,File destFile);文件复制
package com.oracle.demo03; import java.io.File import java.io.IOException import org.apache.commons.io.FileUtils; public class demo03 { public static void main(String[] args) throws IOException { get2(); } public static void get1() throws IOException{ // File对象明确数据源 //读取文件数据 File file=new File("D:\\demo0611\\abc.txt"); String content=FileUtils.readFileToString(file); System.out.println(content); } public static void get2()throws IOException{ //文件夹复制 //明确数据源 File src=new File("D:\\demo0611"); //明确目的地 File dest=new File("D:\\demo0823"); FileUtils.copyDirectoryToDirectory(src,dest); } public static void get3(){ } }