一、IOwindows
I-------->Input 输入
O-------->OutPut 输出数组
IO解决的问题 设备之间数据的传输问题
设备: 内存----->硬盘 键盘---------->内存 硬盘------>内存 app
通俗点讲:是数据的传输
图片的复制 图片的传输
二、File类
file类主要的功能定位目标文件函数
分隔符
在windows环境下的分隔符 \ 可是因为在Java中\ 须要转意义 \\
在Linux环境下 /
后来window兼容了这两种写法 也就是说在Windows状况下 \\ /
后来sun为了规范这种写法 File类中提供了一个方法来动态的生成分隔符
定位目标文件的格式是:
File file=new File(目标文件的地址);对象
目标文件的地址:
盘符:C D E......图片
路径的构成
绝对路径(就是这个文件的盘符下的完整地址)
盘符:\\....文件
String path="G:"+File.separator+"infor.txt";//(建议的写法)
String path1="G:\\infor.txt";
String path2="G:/infor.txt";内存
相对路径
相对:相对的是那个当前工程目录
. 定位的是当前工程的根目录
.. 定位的是当前工程根目录的上一级目录资源
不在同一盘符下是不能写相对路径的字符串
3.File类中的方法
separator 与系统有关的默认名称分隔符 可以根据系统的不一样来动态的生成那个分隔符
构造函数
1:File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串建立一个新 File 实例。
2:File(String pathname) 经过将给定路径名字符串转换为抽象路径名来建立一个新 File 实例。
3:File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串建立一个新 File 实例
4:File(URI uri) 经过将给定的 file: URI 转换为一个抽象路径名来建立一个新的 File 实例。
四、File类里面的方法
createNewFile() :建立文件
exists() 判断文件是否存在
getAbsolutePath() 返回绝对路径名 很恶心
getName()返回路径上的文件的名称
getParent()返回他爹的路径 恶心
isAbsolute()断定是否为绝对的路径
isDirectory() :断定当前的文件是否是目录
isFile():断定文件是否是文件
Length():获取那个文件的长度
list() :把一个目录下面的全部文件和文件夹的名称返回给一个数组
listFiles() :把当前路径下的文件或者文件夹以File的形式返回来
mkdir() :建立目录
mkdirs() :建立的是级联目录
renameTo(File dest) 至关于给文件从新命名get
五、字节流
字节输入流
---------------------------------|InputStream
字节输出流
--------------------------------|OutputStream
输入或者输出是相对有当前程序而言的
输入表示的是程序要获取数据
输出表示的是程序要写出数据
六、FileInputStream
read() 今后输入流中读取一个数据字节 返回的就是当前读取的字节
读取文件
1:定位目标文件-------->咱们要读取那一个文件的内容--->经过File类来进行定位的
2:创建传输的通道------>FileInputStream();
3:读取文件
4:关闭链接
读取文件的时候
1:可使用:in.read()函数来一个字节一个字节的读 注意:该方法的返回值就是读取到的那个字符 若是须要显示的话那么是须要那么强制类型的转换的
2:读取文件的时候若是采用的是那个in.read(buf)这个方法的
意思是:从目标文件读取buf长度个数据到buf这个数组中,返回当前这一次读取到实际的长度
注意:流读取完毕必定要关闭链接,不然资源不会被释放
七、文件输出流
FileOutPutStream
FileOutputStream(File file) 建立一个向指定 File 对象表示的文件中写入数据的文件输出流。
FileOutputStream(File file, boolean append) 建立一个向指定 File 对象表示的文件中写入数据的文件输出流。
FileOutputStream(String name) 建立一个向具备指定名称的文件中写入数据的输出文件流。
FileOutputStream(String name, boolean append) 建立一个向具备指定 name 的文件中写入数据的输出文件流。
append:追加
true:表示向源文件进行追加
false:不追加那就是覆盖
字节流是不能直接写字符串的 write(byte[]): 表示的是能直接写字节数组到目标文件