Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
JavaSE-11 IO流
File
(1)File类是用来操作文件的
(2)构造方法
A:File file = new File("e:\\demo\\a.txt");
B:File file = new File("e:\\demo","a.txt");
C:File file = new File("e:\\demo");
File file2 = new File(file,"a.txt");
(3)File类的功能
A:创建功能 createNewFile() mkdir() mkdirs()
B:删除功能 delete()
C:重命名功能
D:判断功能 canExecute() canRead() canWrite() compareTo equals(Object obj) exists()
E:获取功能 getName() getPath()
F:高级获取功能 getParent() getParentFile() list() listFiles()
G:过滤器功能
(4)案例:
A:输出指定目录下指定后缀名的文件名称
a:先获取所有的,在遍历的时候判断,再输出
b:先判断,再获取,最后直接遍历输出即可
B:批量修改文件名称
IO流
(1)IO用于在设备间进行数据传输的操作
(2)分类:
IO流
|--字节流
|--字节输入流
InputStream
int read():一次读取一个字节
int read(byte[] bys):一次读取一个字节数组
|--FileInputStream
|--BufferedInputStream
|--字节输出流
OutputStream
void write(int by):一次写一个字节
void write(byte[] bys,int index,int len):一次写一个字节数组的一部分
|--FileOutputStream
|--BufferedOutputStream
|--字符流
|--字符输入流
Reader
int read():一次读取一个字符
int read(char[] chs):一次读取一个字符数组
|--InputStreamReader
|--FileReader
|--BufferedReader
String readLine():一次读取一个字符串
|--字符输出流
Writer
void write(int ch):一次写一个字符
void write(char[] chs,int index,int len):一次写一个字符数组的一部分
|--OutputStreamWriter
|--FileWriter
|--BufferedWriter
void newLine():写一个换行符
void write(String line):一次写一个字符串
(3)IO流相关类的继承关系
java.lang.Object
-java.io.InputStream 此抽象类是表示字节输入流的所有类的超类。
-java.io.FileInputStream
-java.io.FilterInputStream
-BufferedInputStream
-java.io.OutputStream 此抽象类是表示输出字节流的所有类的超类。
-java.io.FileOutputStream
-java.io.FilterOutputStream
-BufferedOutputStream
(4)字符流字节流读写操作代码示例
//字符流
private static void methord9(String srcfile, String endfile) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new FileReader(srcfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
String str;
while((str = br.readLine())!= null){
bw.write(str);
bw.newLine();
bw.flush();
}
br.close();
bw.close();
}
private static void methord8(String srcfile, String endfile) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new FileReader(srcfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
char[] chs = new char[1024];
int len= 0;
while((len = br.read(chs))!=-1){
bw.write(chs,0,len);
bw.flush();
}
br.close();
bw.close();
}
private static void methord7(String srcfile, String endfile) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new FileReader(srcfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
int c;
while((c = br.read())!=-1){
bw.write(c);
}
br.close();
bw.close();
}
private static void methord6(String srcfile, String endfile) throws IOException {
// TODO Auto-generated method stub
InputStreamReader isr = new InputStreamReader(new FileInputStream(srcfile));
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(endfile));
char[] chs = new char[1024];
int len = 0;
while((len = isr.read(chs))!=-1){
osw.write(chs,0,len);
}
isr.close();
osw.close();
}
private static void methord5(String srcfile, String endfile) throws IOException {
// TODO Auto-generated method stub
InputStreamReader isr = new InputStreamReader(new FileInputStream(srcfile));
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(endfile));
int c;
while((c = isr.read())!=-1){
osw.write(c);
}
isr.close();
osw.close();
}
//字节流
private static void methord4(String srcfile, String endfile) throws IOException {
// TODO Auto-generated method stub
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcfile));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(endfile));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys,0,len);
}
bis.close();
bos.close();
}
private static void methord3(String srcfile, String endfile)
throws IOException {
// TODO Auto-generated method stub
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcfile));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(endfile));
int f = bis.read();
while ((f = bis.read()) != -1) {
bos.write(f);
}
bis.close();
bos.close();
}
private static void methord2(String srcfile, String endfile)
throws IOException {
// TODO Auto-generated method stub
FileInputStream fis = new FileInputStream(srcfile);
FileOutputStream fos = new FileOutputStream(endfile);
byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read(bys)) != -1) {
fos.write(bys, 0, len);
}
fis.close();
fos.close();
}
private static void methord1(String srcfile, String endfile)
throws IOException {
// TODO Auto-generated method stub
FileInputStream fis1 = new FileInputStream(srcfile);
FileOutputStream fos1 = new FileOutputStream(endfile);
int f1;
while ((f1 = fis1.read()) != -1) {
fos1.write(f1);
}
fis1.close();
fos1.close();
}
}