一.流
流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种。I/O流提供了―条通道程序,可以使用这条通道把源中的字节序列送到目的地,虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘鼠标、内存或显示器窗口等。
Java由数据流处理输入输出模式,程序从指向源的输入流中读取源中的数据。源可以是文件、网络、压缩包或者其他数据源。
输出流的指向是数据要到达的目的地,程序通过向输出流中写入数据把信息传递到目的地。输出流的目标可以是文件、网络、压缩包、控制台和其他数据输出目标。
二.输入输出流I/O
1.输入流
InputStream 类是字节输入流的抽象类,是所有字节输入流的父类。
该类中所有方法遇到错误时都会引发IOException异常。下面是对该类中的一些方法的简要说明:
2.输入流
OutputStream类是字节输入流的抽象类,此抽象类表示输出字节流的所有类的超类。
OutputStream类中的所有方法均返回void,在遇到错误时会引发IOException异常。
Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。
3.特点
以数据为基准,根据数据的流动方向来确定是输入还是输出流。
三.文件构造
File类是io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法实现创建、删除重命名文件等。File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读写权限等。数据流可以将数据写入到文件中而文件也是数据流最常用的数据媒体。
1.构造方法
new File(文件全路径)
或 new File(文件路径,文件名)
2.方法
(1)exists() 判断是否存在;(2)createNewFile() 创建新文件,如果文件已存在,不会覆盖原文件;(3)getName 获取文件名;(4)delete() 删除;(5)renameTo(File对象) 修改路径及文件名。
File的构造:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package org.hanqi.ex; 2 3 import java.io.*; 4 5 public class TestFile { 6 7 public static void main(String[] args) { 8 9 10 //构建File实例,指向了硬盘上的一个文件 11 File file =new File("d:\test.txt"); 12 13 file =new File("d:\", "test1.txt"); 14 15 //判断文件是否存在 16 if(file.exists()) 17 { 18 System.out.println(file.getName()+"文件已存在"); 19 20 System.out.println(file.getAbsolutePath()); 21 22 23 //改名 24 file.renameTo(new File("g:\text2.txt")); 25 26 27 try { 28 if(file.createNewFile()) 29 { 30 System.out.println("创建文件成功"); 31 } 32 else 33 { 34 System.out.println("创建文件失败"); 35 } 36 } catch (IOException e) { 37 38 System.out.println(e.getMessage()); 39 40 e.printStackTrace(); 41 } 42 43 // if(file.delete()) 44 // { 45 // System.out.println("删除成功"); 46 // } 47 // else 48 // { 49 // System.out.println("删除失败"); 50 // } 51 } 52 else 53 { 54 System.out.println(file.getName()+"文件不存在"); 55 56 //创建 57 try { 58 if(file.createNewFile()) 59 { 60 System.out.println("创建文件成功"); 61 } 62 else 63 { 64 System.out.println("创建文件失败"); 65 } 66 67 } catch (IOException e) { 68 69 System.out.println(e.getMessage()); 70 71 e.printStackTrace(); 72 } 73 } 74 75 } 76 77 }
小结: