Java基础知识 十二 IO流 (上)
2015-11-09 22:18
441 查看
File
(1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件
(2)构造方法
A:File file = newFile("e:\\demo\\a.txt");
B:File file = newFile("e:\\demo","a.txt");
C:File file = newFile("e:\\demo");
File file2 =new File(file,"a.txt");
(3)File类的功能
A:创建功能
publicboolean createNewFile() 创建文件,如果存在了就不创建了
publicbooleanmkdir() 创建文件夹,如果存在了就不创建了
publicbooleanmkdirs() 创建父子类型的文件夹,如果父文件夹不存在会自动创建,如果存在就不创建了
B:删除功能
publicbooleandelete() 删除(要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹)
C:重命名功能
publicboolean renameTo(Filedest) 注意:如果路径名相同,就是改名。
如果路径名不同,就是改名并剪切。
D:判断功能
publicboolean isDirectory() 判断是否是文件夹
publicboolean isFile() 是否是文件
publicboolean exists() 判断是否存在
publicboolean canRead() 能否读取
publicboolean canWrite() 能否改写
publicboolean isHidden() 是否影藏
E:获取功能
基本获取功能
public StringgetAbsolutePath() 获取绝对路径
public StringgetPath() 获取相对路径
public StringgetName() 获取名字
public longlength() 获取长度 (字节长度)
public longlastModified() 获取最后的修改日期(毫秒值)
高级获取功能
publicString[] list() 获取指定目录下的所有文件或者文件夹的 名称 数组
public File[]listFiles() 获取指定目录下的所有文件或者文件夹的 File 数组
G:过滤器功能
publicString[] list(FilenameFilterfilter) //获取的是字符串类型的文件名
public File[]listFiles(FilenameFilterfilter) //获取的是对象类型的文件名
IO流
(1)IO用于在设备间进行数据传输的操作
(2)分类:
A:流向
输入流 读取数据
输出流 写出数据
B:数据类型
字节流
字节输入流
字节输出流
字符流
字符输入流
字符输出流
注意:
a:如果我们没有明确说明按照什么分,默认按照数据类型分。
b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。
(3)FileOutputStream写出数据
A:操作步骤
a:创建字节输出流对象
b:调用write()方法
c:释放资源
B:代码体现:
FileOutputStreamfos = new FileOutputStream("fos.txt");
fos.write("hello".getBytes());
fos.close();
C:要注意的问题?
a:创建字节输出流对象做了几件事情?
A:创建字节输入流对象
B:调用read()方法读取数据,并把数据显示在控制台
C:释放资源
b:为什么要close()?
A:让流对象变成垃圾,这样就可以被垃圾回收器回收了
B:通知系统去释放跟该文件相关的资源
c:如何实现数据的换行?
windows:\r\n
linux:\n
Mac:\r
d:如何实现数据的追加写入?
true
(4)FileInputStream读取数据
A:操作步骤
a:创建字节输入流对象
b:调用read()方法
c:释放资源
B:代码体现:
FileInputStreamfis = new FileInputStream("fos.txt");
//方式1
int by =0;
while((by=fis.read())!=-1){
System.out.print((char)by);
}
//方式2
byte[] bys =new byte[1024];
int len =0;
while((len=fis.read(bys))!=-1){
System.out.print(newString(bys,0,len));
}
fis.close();
字符流
(1)字节流操作中文数据不是特别的方便,所以就出现了转换流。
转换流的作用就是把字节流转换字符流来使用。
(2)转换流其实是一个字符流
字符流 = 字节流 +编码表
(3)编码表
A:就是由字符和对应的数值组成的一张表
B:常见的编码表
ASCII
ISO-8859-1
GB2312
GBK
GB18030
UTF-8
C:字符串中的编码问题
编码
String-- byte[]
解码
byte[]-- String
(4)IO流中的编码问题
A:OutputStreamWriter
OutputStreamWriter(OutputStreamos):默认编码,GBK
OutputStreamWriter(OutputStreamos,String charsetName):指定编码。
B:InputStreamReader
InputStreamReader(InputStreamis):默认编码,GBK
InputStreamReader(InputStreamis,String charsetName):指定编码
C:编码问题其实很简单
编码只要一致即可
(5)字符流
Reader
|--InputStreamReader
|--FileReader
|--BufferedReader
Writer
|--OutputStreamWriter
|--FileWriter
|--BufferedWriter
(1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件
(2)构造方法
A:File file = newFile("e:\\demo\\a.txt");
B:File file = newFile("e:\\demo","a.txt");
C:File file = newFile("e:\\demo");
File file2 =new File(file,"a.txt");
(3)File类的功能
A:创建功能
publicboolean createNewFile() 创建文件,如果存在了就不创建了
publicbooleanmkdir() 创建文件夹,如果存在了就不创建了
publicbooleanmkdirs() 创建父子类型的文件夹,如果父文件夹不存在会自动创建,如果存在就不创建了
B:删除功能
publicbooleandelete() 删除(要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹)
C:重命名功能
publicboolean renameTo(Filedest) 注意:如果路径名相同,就是改名。
如果路径名不同,就是改名并剪切。
D:判断功能
publicboolean isDirectory() 判断是否是文件夹
publicboolean isFile() 是否是文件
publicboolean exists() 判断是否存在
publicboolean canRead() 能否读取
publicboolean canWrite() 能否改写
publicboolean isHidden() 是否影藏
E:获取功能
基本获取功能
public StringgetAbsolutePath() 获取绝对路径
public StringgetPath() 获取相对路径
public StringgetName() 获取名字
public longlength() 获取长度 (字节长度)
public longlastModified() 获取最后的修改日期(毫秒值)
高级获取功能
publicString[] list() 获取指定目录下的所有文件或者文件夹的 名称 数组
public File[]listFiles() 获取指定目录下的所有文件或者文件夹的 File 数组
G:过滤器功能
publicString[] list(FilenameFilterfilter) //获取的是字符串类型的文件名
public File[]listFiles(FilenameFilterfilter) //获取的是对象类型的文件名
IO流
(1)IO用于在设备间进行数据传输的操作
(2)分类:
A:流向
输入流 读取数据
输出流 写出数据
B:数据类型
字节流
字节输入流
字节输出流
字符流
字符输入流
字符输出流
注意:
a:如果我们没有明确说明按照什么分,默认按照数据类型分。
b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。
(3)FileOutputStream写出数据
A:操作步骤
a:创建字节输出流对象
b:调用write()方法
c:释放资源
B:代码体现:
FileOutputStreamfos = new FileOutputStream("fos.txt");
fos.write("hello".getBytes());
fos.close();
C:要注意的问题?
a:创建字节输出流对象做了几件事情?
A:创建字节输入流对象
B:调用read()方法读取数据,并把数据显示在控制台
C:释放资源
b:为什么要close()?
A:让流对象变成垃圾,这样就可以被垃圾回收器回收了
B:通知系统去释放跟该文件相关的资源
c:如何实现数据的换行?
windows:\r\n
linux:\n
Mac:\r
d:如何实现数据的追加写入?
true
(4)FileInputStream读取数据
A:操作步骤
a:创建字节输入流对象
b:调用read()方法
c:释放资源
B:代码体现:
FileInputStreamfis = new FileInputStream("fos.txt");
//方式1
int by =0;
while((by=fis.read())!=-1){
System.out.print((char)by);
}
//方式2
byte[] bys =new byte[1024];
int len =0;
while((len=fis.read(bys))!=-1){
System.out.print(newString(bys,0,len));
}
fis.close();
字符流
(1)字节流操作中文数据不是特别的方便,所以就出现了转换流。
转换流的作用就是把字节流转换字符流来使用。
(2)转换流其实是一个字符流
字符流 = 字节流 +编码表
(3)编码表
A:就是由字符和对应的数值组成的一张表
B:常见的编码表
ASCII
ISO-8859-1
GB2312
GBK
GB18030
UTF-8
C:字符串中的编码问题
编码
String-- byte[]
解码
byte[]-- String
(4)IO流中的编码问题
A:OutputStreamWriter
OutputStreamWriter(OutputStreamos):默认编码,GBK
OutputStreamWriter(OutputStreamos,String charsetName):指定编码。
B:InputStreamReader
InputStreamReader(InputStreamis):默认编码,GBK
InputStreamReader(InputStreamis,String charsetName):指定编码
C:编码问题其实很简单
编码只要一致即可
(5)字符流
Reader
|--InputStreamReader
|--FileReader
|--BufferedReader
Writer
|--OutputStreamWriter
|--FileWriter
|--BufferedWriter
相关文章推荐
- Java基础知识 十一 (异常概述)
- Java基础知识 十(Map集合的概述及案例)
- Java基础知识 九 (Collection集合子类 Set集合)
- Java基础知识 八 集合(Collection、List)
- Java基础知识 六 API常用类之String Scanner
- Java基础知识 五 (面向对象的概述及举例)
- Java中String类的介绍及常见用法
- Java中的异常处理
- Java中对象及其三大特征(封装,继…
- Java中多线程总结(下)
- Java中多线程总结(上)
- JAVA中集合类说明及区别
- Java 数组
- java监控工具jstatd-windows
- Java IO 总结
- spring单例性能
- java调试工具jdb
- Java 语言中集合,对象数组,原始类型(primitive)数组互相转换的工具类
- Java中TreeMap的实现
- java编译命令工具javac