java基础——io流:
基本概念:
文 件:文件是数据源(保存数据的地方)的一种,像我们经常使用的word,txt,java都是文件,文件最主要的作用就是保存数据,它可以保存文字、图片或声音、视频等
文件流:文件在程序中是以流的形式操作的

输入输出流转换图
输入流:数据从 数据源(文件) 到 程序(内存) 之间的路径
输出流:数据从 程序(内存) 到 数据源(文件) 之间的路径
输入输出是针对内存来说的
io流包括字符流和字节流
字符流针对文字相关的 包括Reader(读入,输入流)和Writer(写出,输出流)
字节流(stream)
1.FileWriter
(1)创建一个FileWriter
FileWriter fw=new FileWriter("d:\\aa.txt");文件路径
FileWriter fw=new FileWriter("d:\\aa.txt",true); 允许追加写出
1-写出一个字符串:fw.write("hello world") 换行+\r\n
fw.flush();刷新
fw.close();关闭
2-可写出char数组,可选择输出off偏移量,len长度
char c={'中',‘国’,‘节’,‘真’,‘好’,‘玩’};
fw.write(c,3,3)
3-输出对应的ASCII码
要输出整数97 fw.write("97") 或char c={‘9’,‘7’};
2.FileReader
FileReader fr=new FileReader("d:\\aa.txt");文件路径
char c[]=new char[512];
int tem=0;
while((tem=fr.read(c)!=-1)){
String ss=new String(c,0,tem)
System.out.println(ss);
}
读一次写一次:
方法一:/*FileReader fr=new FileReader("d:\\aa.txt");
FileWriter fw=new FileWriter("e:\\bb.txt");
char c[]=new char[512];
int tem=0;
while((tem=fr.read(c))!=-1){
fw.write(c,0,tem);
}
fw.flush();
fw.close();
fr.close();*/
方法二:拷贝文本文件
FileReader fr=new FileReader("e://a.txt");
BufferedReader br=new BufferedReader(fr);
FileWriter fw=new FileWriter("d://aa.txt");
BufferedWriter bw=new BufferedWriter(fw);
String ss=null;
while((ss=br.readLine())!=null){
bw.write(ss);
bw.newLine();//换行
}
bw.flush();
bw.close();
br.close();
3.字符缓冲流
字符缓冲区作用:对字符流进行再次封装,使之读写效率提高
把集合中的数据写到文本文件:
FileWriter fw=new FileWriter("d:\\aa.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("hello world");
bw.newLine();//换行
bw.write("hello world");
bw.flush();
bw.close();*/
把文本文件中的数据读取到控制台
FileReader fr=new FileReader("d:\\aa.txt");
BufferedReader br=new BufferedReader(fr);
String ss="";
while((ss=br.readLine())!=null){
System.out.println(ss);
}
br.close();
}
补充:File静态成员变量
与系统有关的路径分隔符 String separator=File.pathSeparator;
System.out.println(separator); 是一个分号,目录的分割 Linux是:
与系统有关的默认名称分隔符 separator=File.separator;
System.out.println(separator);向右\目录名称分割 Linux是:/
File类的构造方法 三种重载形式
1、File(String pathname)传递路径名 可以写到文件夹和文件
路径
绝对路径 在系统中具有唯一性 c://windows//system.32 http://www.baidu.com
相对路径:表示的是路径之间的相对关系
父目录是唯一性 子目录是可以多个 才c://abc c://abc//jpg c://abc//demo.java
2、File(String Parent,String child) 传递路径,传递字符串父路径 ,字符串子路径
File file1=new File("c:","aa");
System.out.println(file1);输出结果 c://aa
好处:单独操作父路径和子路径
3、File(File parent,String child) 传递路径,传递File类型父路径,字符串子路径
File parent =new File("d:");
File file2=new File(parent,"aa");
System.out.println(file2);输出结果 c://aa
好处:父路径是File类型,父路径可以直接调用File类方法
File创建文件的功能:
File file=new File("f://aa.txt");
boolean b=file.createNewFile();
System.out.println(b); 文件如果已经存在就不再创建
File创建文件夹的功能:
File file1=new File("f://aa");
boolean c=file1.mkdir();
System.out.println(c);文件夹如果已经存在就不再创建
mkdis();创建多层次文件夹
建议用mkdis()来创建文件夹
File类的删除功能 boolean delete()删除的文件或者文件夹,在File构造方法中给出,删除成功返回true,删除失败返回false
File file=new File(“c://abc”);
boolean b=file.delete();
system.out.println(b);
删除方法不走回收站,直接从硬盘中删除
File获取功能
String getName() 返回路径中表示的文件或者文件夹名 获取路径中最后部分的名字
long length()返回路径中表示的文件的字节数,注意不是文件夹 File file=new File("D:\\oa\\.metadata\\.log");
long length=file.length();
System.out.println(length);
String getAbsolutePath()获取绝对路径;返回String对象
File getAbsoluteFile()获取绝对路径;返回File对象
File file=new File("D:\\oa\\.metadata\\.log");
String path=file.getAbsolutePath();
System.out.println(path);
eclipse环境中,写的是一个相对路径,绝对位置是工程根目录
获取父路径:String getparent()返回String对象
File getParentFile()返回File对象
File parent=file.getParentFile().getParentFile().getParentFile();//输出null
File判断功能:
1、boolean exist是() 判断File构造方法中封装路径是否存在,存在返回true,不存在返回false
2、boolean isDirectory()判断File构造方法中封装的路径 是不是文件夹
3、boolean isFile()判断File构造方法中封装的路径 是不是文件
4、list String[]list() 获取到File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)返回只有名字
5、File[] listFiles()获取到File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)返回File的是目录或者文件的全路径
- java基础
- 第一章 认识java
- 第一节 第一个程序
- 第二节 jvm jdk jre说明
- 第三节 注释
- 第二章 开发环境配置
- 第三章 eclipse中的快捷键
- 第四章 基本数据类型和运算符
- 第一节 变量
- 第二节 标示符
- 第三节 基本数据类型
- 第四节 运算符
- 第五章 面向对象
- 第一节 创建类
- 第二节 创建对象实例
- 第三节 成员方法
- 第四节 如何定义一个函数
- 第五节 构造方法
- 第六章 this关键字
- 第七节 方法的重载
- 第八节 静态变量和静态方法
- 第九节 封装
- 第十节 包的使用方法
- 第十一节 全局变量和局部变量的区别
- 第十二节 断点调试
- 第十三节 继承
- 第十四节 多态
- 第十五节 抽象类
- 第十六节 接口
- 第十七节 final关键字
- 第六章 数组
- 第七章 api和String
- 第八章 集合
- 第九章 IO流
