io(文件操作)
in (读取) out(写出)
java.io.File
常用的三个构造方法:
/*
*File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
*/
public class Demo01 {
public static void main(String[]args) throws IOException {
File file = new File("D://1.txt");
boolean flag = file.createNewFile ();//当且仅当具有此名称的文件尚不存在时,以原子方式创建 由此抽象路径名命名的新空文件。
System.out.println (flag?"创建成功":"创建失败");
}
}
/*
*File(File parent, String child) //先传一个文件夹,在文件夹里创建文件。
*/
public class Demo02 {
public static void main(String[]args) throws IOException {
File file = new File("D://hahaha");
//boolean flag = file.mkdir (); //创建文件夹
//System.out.println (flag?"创建成功":"创建失败");
File dir = new File(file,"a.txt");
dir.createNewFile ();
/*
*File(String parent, String child)//先传字符串路径,在文件夹里创建文件。
*/
File dd = new File ("D://hahaha","c.txt");
dd.createNewFile ();
}
}
常用方法:
-
-
-
-
避免跨平台;路径分隔符出错,替换成字段
pathSeparator 与系统相关的路径分隔符,为方便起见,表示为字符串。 //详细见File -字段
文件遍历案例
public class Demo03 {
public static void main(String[]args) throws IOException {
File e = new File ("E:\\");
File [] files = e.listFiles ();
ListFiles(files);
}
private static void ListFiles(File[] files) {
if(files != null && files.length>0){
for( File file:files) {
if (file.isFile ()) {
//判断是否为文件
if (file.getName ().endsWith (".pdf")) {
//找到一个avi文件
if(file.length ()>10*1024*1024) {
System.out.println ("找到一个avi文件:" + file.getAbsolutePath ());
}
}
}else {
File[] file2 = file.listFiles ();
ListFiles (file2);
}
}
}
}
}
文件过滤器
了解即可
相对路径与绝对路径
相对路径:Java中不完整路径 ,相对于项目下的路径,a.txt.
绝对路径:路径只能拿到一个文件,c://a.txt.
流概述(文件内容)
*Io流概述
* 可以将这种数据操作,看作是一种数据的流动,按照流动的方向分为输入Input和输出Output
* Java中的IO操作主要指的是java.io包下的一些常用类的使用,通过这些常用类对数据
* 进行读取(输入Input)和写出(输出Output)
*
* IO流的分类
* c
*
* 字节流:
* - 输入流:(顶级父类)InputStream
* - 输出流: ()OutputStream
* 字符流:
* -输入流:Reader
* -输出流:Writer
* 一切皆字节:
* 计算机中任何数据(文本,图片,音乐等等) 都是以二进制的形式存储的。
* 在数据传输时,在数据传输时,也都是以二进制的形式存储的。
* 后续学习的任何流,在数据底层都是二进制
*/
java.io.OutputStream
-
-
write(byte[] b, int off, int len) //从off开始 ,len= 写的个数
write(int b) 将指定的字节写入此输出流。 //输入是int,传出wei字节
java.io.FileOutputStream
构造方法:
FileOutputStream(FileDescriptor fdObj) 创建要写入指定文件描述符的文件输出流,该文件描述符表示与文件系统中实际文件的现有连接。
FileOutputStream(File file, boolean append) 创建文件输出流以写入由指定的 File对象表示的文件。
FileOutputStream(String name) 创建文件输出流以写入具有指定名称的文件。
FileOutputStream(String name, boolean append) 创建文件输出流以写入具有指定名称的文件。
1.3传入的是对象
4,5传的是路径
public class Demo05 {
public static void main(String[]args) throws IOException {
//FileOutputStream
FileOutputStream fos = new FileOutputStream ("d://a.txt",true);
byte [] bytes = {65,56,78,56,46};
fos.write (bytes);
fos.close ();
System.out.println ("已经写出");
}
}
java.io.FileInputStream
构造方法
FileInputStream(File file) //通过打开与实际文件的连接来创建FileInputStream ,该文件由文件系统中的 File对象 file命名。(对象)
FileInputStream(FileDescriptor fdObj) //使用文件描述符 fdObj创建 FileInputStream ,该文件描述符 表示与文件系统中实际文件的现有连接。