字节输出流OutputStream
FileOutputStream
构造方法在文件不存在时会自动创建文件,文件存在则覆盖
FileOutputStream fos=new FileOutputStream("D:\text\s.txt");
write();向文件中写入一个字节,走阿斯科码表
write(byte[]);写入数组
write(byte[],a,b);写入指定数组,从哪开始 写入几个
:换行
列:
write(“ 哈哈哈”.getBytes);先换行,字符串转byte数组后存入
FileOutputStream("D:\text\s.txt",true);重载方法,第二个参数为true代表续写
字节输入流InputStream
FileInputStream
read();读一个字节,返回值为int
当读不到时会返回一个-1
read(byte[] );读取一个字节数组
FileInputStream fis=new FileInputStream("D:\text\s.txt");
byte[] bytes=new byte[2];
int len=fis.read(bytes);
System.out.println(len);//IO读取的有效长度,没有时返回-1
System.out.println(new String(bytes));
循环读取:
int len=0;
while((len=fis.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
复制文件:
//明确数据源
FileInputStream fis=new FileInputStream("D:\text\s.txt");
//明确目的地
FileOutputStream fos=new FileOutputStream("D:\text\e.txt");
//开始复制
int len=0;
while((len=fis.read())!=-1){
fos.write(len);
}
//释放资源
fis.close();
fos.close();
字符流:
字符输入流
FileReader读取包含中文的文件
字符输出流
FileWriter 写入中文到文件
close() 先刷新 然后关闭此流
flush() 刷新