IO流
该图来自牛客网
File对象
构造方法
File(String filename)
File(String derectoryPath,String filename);
File(File dir,String filename)
package fix_error;
import java.io.*;
public class test {
public static void main (String args[]) {
File f= new File("ddd.txt") ;
System. out. println(f.getName() +"是可读的吗:"+f.canRead()) ;
System. out.println(f.getName() +"的长度:"+f.length()) ;
System. out.println(f.getName () +"的绝对路径:"+f.getAbsolutePath());
File file = new File("new.txt") ;
System.out.println("在当前目录下创建新文件"+file. getName());
if(!file.exists()) {
try { //创建文件
file.createNewFile() ;
//删除文件 file.delete();
System.out.println("创建成功") ;
}
catch(IOException exp){
}
}
}
}
结果:
目录
public boolean mkdir()创建目录
文件字节输入输出流
使用输入流的步骤,以字节为单位(汉字在文件中占用两个字节,可能会乱码)
文件字节
- 设定输入流的源
- 创建指向源的输入流
try
FileInputStream
catch - 让输入流读取源中的数据read
- 关闭输入流
package fix_error;
import java.io.*;
public class test {
public static void main (String args[]) {
int n = -1;
byte [] a = new byte[100];
try{
File f = new File("ddd.txt");
InputStream in = new FileInputStream(f);
while((n=in.read(a,0,100))!=-1){
String s= new String(a,0,n);
System.out.println(s);
}
}
catch(IOException e){
}
}
}
结果:
文件字节输出流
- 给出输出流的目的
- 创建指向目的地的输出流
- 让输入流把数据写入到目的地
- 关闭输入流
package fix_error;
import java.io.*;
public class test{
public static void main(String args[]) {
byte [] a="新年快乐".getBytes();
byte [] b= "Happy New Year".getBytes();
File file =new File("a.txt");
//输出的目的地
try{
OutputStream out = new FileOutputStream(file); //指向目的地的输出流
System. out. println(file.getName()+"的大小:"+file.length()+"字节") ;
//a.txt的大小:0字节
out.write(a) ;
//向目的地写数据
out.close () ;
out = new FileOutputStream(file, true);
//准备向文件尾加内容
System.out.println(file. getName ()+"的大小:"+file.length()+"字节") ;
//a.txt的大小:8字节
out. write (b, 0,b.length) ;
System. out.println(file.getName()+"的大小:"+file. length()+"字节");
//a.txt的大小:22字节
out.close() ;
}
catch(IOException e) {
System. out.println("Error "+e);
}
}
}
结果:
文件字符输入、输出流
FileReader 以字符数组read 数据,即以字符为基本单位处理数据
FileWriter …write…
缓冲流
BufferReader
BufferWriter
package fix_error;
import java.io.*;
public class test {
public static void main (String args[]){
File sourceFile = new File("a.txt");//读取的文件
File targetFile = new File("b.txt");//写入的文件
char c[] =new char[19];//char型数组
try{
Writer out = new FileWriter (targetFile, true) ;
//指向目的地的输出流
Reader in = new FileReader (sourceFile) ;
int n =-1;
//指向源的输入流
while((n=in.read(c))!=-1) {
out.write(c,0,n);
}
out.flush();
out.close();
}
catch (IOException e){
System.out.println("Error"+e);
}
}
}
结果:
随机流
RandomAccessFile既可以指向流源,也可以指向目的地
数组流
源和目的地除了可以是文件,还可以是计算机累内存
数据流
。。。