(七)、字符缓冲流
20.字符缓冲流(读取)
1.缓冲流:BufferedReader/BufferedWriter 2.高效读写 3.支持输入换行符 4.可以一次写一行、读一行。
基本思路: 1.创建一个字符读取流 2.创建一个字符读取缓存区,把文件放到缓存区 3.关闭
import java.io.BufferedReader; import java.io.FileReader; public class Demo11 { public static void main(String[] args) throws Exception { //1.创建一个字符读取流 FileReader fileReader=new FileReader("e:\\123.txt"); //2.创建一个字符读取缓冲流 BufferedReader bufferedReader=new BufferedReader(fileReader); int count=0; while ((count=bufferedReader.read())!=-1){ System.out.println((char)count); } bufferedReader.close(); } }
import java.io.BufferedReader; import java.io.FileReader; public class Demo11 { public static void main(String[] args) throws Exception { //1.创建一个字符读取流 FileReader fileReader=new FileReader("e:\\123.txt"); //2.创建一个字符读取缓冲流 BufferedReader bufferedReader=new BufferedReader(fileReader); char []buf=new char[1024]; int count=0; while ((count=bufferedReader.read(buf))!=-1){ System.out.println(new String(buf,0,count)); } bufferedReader.close(); } }
21.字符缓冲流(写入)
基本思路: 1.创建文件字符 2.创建文件字符缓冲区 3.写入数据 4. newLine() 写入一个换行符
import java.io.BufferedWriter; import java.io.FileWriter; public class Demo12 { public static void main(String[] args) throws Exception { //1.设置文件字符输出 FileWriter fileWriter=new FileWriter("e:\\147.txt"); //2.设置文件字符写的缓存区 BufferedWriter bufferedWriter=new BufferedWriter(fileWriter); //3.开始写的操作 for (int i = 0; i <10 ; i++) { bufferedWriter.write("你好,小明"); bufferedWriter.newLine(); //写入一个换行 } System.out.println("项目完成"); //关闭文件 bufferedWriter.close(); } }
(八).打印输出流(printWriter)
22.打印输出流
打印输出流 (原样输出) 1.PrintWriter()
import java.io.PrintWriter; public class Demo13 { public static void main(String[] args) throws Exception { //1.创建打印流 PrintWriter printWriter=new PrintWriter("e:\\001.txt"); //2.打印 printWriter.println(91); printWriter.println(true); printWriter.println('a'); printWriter.println("123"); printWriter.close(); System.out.println("打印成功"); } }
(九)、转换流(编码格式)
1.也叫做桥转换流:InputStreamReader/OutputStreamWriter (1).可将字节流转换为字符流 (2).可设置字符的编码方式 切记 : 读的文件的编码格式需要和设置的编码格式要一致否则会乱码 (eg:utf-8 可以打印汉字 ,gbk 则会出现乱码)
23.输入转换流
import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; public class Demo14 { public static void main(String[] args) throws Exception{ //1.创建一个输入流 FileInputStream fileInputStream=new FileInputStream("e:\\123.txt"); //2.创建一个输入转换流,并且把输入流放进转换流 InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream,"utf8"); //指定编码 int date=0; while ((date=inputStreamReader.read())!=-1){ System.out.println((char)date); } inputStreamReader.close(); } }
24.输出转换流
基本思路: 1.创建文件流 2.创建文件输出转换流 3.关闭
import java.io.FileOutputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; public class Demo15 { public static void main(String[] args) throws Exception{ //1.创建文件输出流 FileOutputStream fileOutputStream=new FileOutputStream("e:\\1217.txt"); //2.文件输出转换流 OutputStreamWriter outputStream=new OutputStreamWriter(fileOutputStream,"UTF-8"); for (int i = 0; i <10; i++) { outputStream.write("你好,傻瓜"); outputStream.flush(); } outputStream.close(); System.out.println("运行完毕!"); } }
(十)、File类
概念:代表物理盘符中的一个文件或则文件夹
25.文件操作
基本思路: 1.创建文件 2.分隔符 3.删除文件 4.获取文件 5.判断文件
import java.io.File; import java.util.Date; public class Demo16 { public static void main(String[] args) throws Exception { separator(); fileOpe(); } //1.分隔符 public static void separator(){ System.out.println("路径分割符:"+ File.pathSeparator); System.out.println("名称分隔符:"+File.separator); } //2.文件操作 public static void fileOpe() throws Exception{ //1.创建文件 File file=new File("e:\\file.txt"); System.out.println(file.toString()); if (!file.exists()) { boolean b = file.createNewFile(); System.out.println("创建的结果是:" + b); } //2.删除文件 //2.1直接删除 /* if (file.exists()){ file.delete(); System.out.println("删除成功"); } //2.2使用jvm进行删除 file.deleteOnExit(); Thread.sleep(5000); */ //3.获取文件信息 System.out.println("获取文件的绝对路径: "+file.getAbsolutePath()); System.out.println("获取文件的路径 "+file.getPath()); System.out.println("获取文件的名称 "+file.getName()); System.out.println("获取父目录"+file.getParent()); System.out.println("就获取文件的长度:"+file.length()); System.out.println("获取创建时间:"+ new Date(file.lastModified())); //4.判断 System.out.println("判断是否可写:"+file.canWrite()); System.out.println("是否是文件"+file.isFile()); System.out.println("是否是隐藏的:"+file.isHidden()); } }