第一节 IO流简介
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类。方便更直观的进行数据操作。
IO流的分类
根据处理数据类型的不同分为:字节流和字符流
根据数据流向不同分为输入流和输出流
第二节 文件操作File类
1,public boolean mkdir() 创建此抽象路径名指定的目录
2,public boolean createNewFile() 创建一个文件
3,public boolean delete() 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除
4,public boolean exists() 测试此抽象路径名表示的文件或目录是否存在
5,public File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
6,public boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录
import java.io.File;
import java.io.IOException;
/**
*
* @author Administrator
*/
public class Demo1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
File file=new File("d://java创建的目录");
boolean b=file.mkdir();
if(b){
System.out.println("目录创建成功");
file=new File("d://java创建的目录//java文件.txt");
Boolean b2=file.createNewFile();
if(b2){
System.out.println("创建成功");
}else{
System.out.println("创建失败");
}
}else{
System.out.println("目录创建失败");
}
}
}
》》》》》》》》》》》》》》
import java.io.File;
/**
*
* @author Administrator
*/
public class Demo2 {
public static void main(String args[]){
File file=new File("D://java创建的目录//java文件.txt");
if(file.exists()){
boolean b=file.delete();
if(b){
System.out.println("删除文件成功");
}else{
System.out.println("删除文件失败");
}
}
file =new File("D://java创建的目录");
if(file.exists()){
boolean b=file.delete();
if(b){
System.out.println("删除目录成功");
}else{
System.out.println("删除目录失败");
}
}
}
}
》》》》》》》》》》》》》
import java.io.File;
/**
*
* @author Administrator
*/
public class Demo3 {
public static void listFile(File file){
if(file!=null){
if(file.isDirectory()){
File f[]=file.listFiles();
if(f!=null){
for(int i=0;i<f.length;i++){
listFile(f[i]);//递归调用
}
}
}else{
System.out.println(file);
}
}
}
public static void main(String args[]){
File file=new File("D://EFI");
listFile(file);
}
}
第三节 字节输入输出流
1,InputStream 读取文件
2,OutputStream写入文件
3,BufferedinputStream和BufferedOutputStream
4,缓冲和非缓冲的区别及性能对比
public class Demo1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
File file=new File("D://测试文件.txt");
InputStream in=new FileInputStream(file);
byte b[]=new byte[1024];
in.read(b);
in.close();
System.out.println("读取的内容是:"+new String(b,"GB2312"));
}
}
》》》》》》》》》》》》》
public class Demo2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
File file=new File("D://测试文件.txt");
InputStream in=new FileInputStream(file);
int fileLength=(int)file.length();
byte b[]=new byte[fileLength];
in.read(b);
in.close();
System.out.println("读取的内容是:"+new String(b,"GB2312"));
}
}
》》》》》》》》》》》
public class Demo3 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
File file=new File("D://测试文件.txt");
InputStream in=new FileInputStream(file);
int fileLength=(int)file.length();
byte b[]=new byte[fileLength];
int temp=0;
int index=0;
while((temp=in.read())!=-1){
b[index++]=(byte)temp;
}
in.close();
System.out.println("读取的内容是:"+new String(b,"GB2312"));
}
}
》》》》》》》》》》》
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
/**
*
* @author Administrator
*/
public class Demo4 {
public static void main(String args[]) throws Exception{
File file=new File("D://测试文件.txt");
OutputStream out=new FileOutputStream(file,true);
String str="我是中国人";
byte b[]=str.getBytes();
out.write(b);
out.close();
}
}
》》》》》》》》》》》
public class Demo5 {
public static void stream() throws Exception{
InputStream in=new FileInputStream("D://测试文件.txt");
OutputStream out=new FileOutputStream("D://临时文件.txt");
int b=0;
while((b=in.read())!=-1){
out.write(b);
}
in.close();
out.close();
}
public static void main (String args[]) throws Exception{
stream();
}
}
》》》》》》》》》》》》》》》
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
*
* @author Administrator
*/
public class Demo6 {
public static void bufferStream() throws Exception{
//带缓冲的字节输入流
BufferedInputStream bf=new BufferedInputStream(new FileInputStream("D://测试文件.txt"));
//带缓冲的字节输出流
BufferedOutputStream bf2=new BufferedOutputStream(new FileOutputStream("D://临时文件.txt"));
int b=0;
long startTime=System.currentTimeMillis();
while((b=bf.read())!=-1){
bf2.write(b);
}
bf.close();
bf2.close();
long endTime=System.currentTimeMillis();
System.out.println("非缓冲花费的时间:"+(endTime-startTime)+"ms");
}
public static void stream() throws Exception{
InputStream in=new FileInputStream("D://测试文件.txt");
OutputStream out=new FileOutputStream("D://临时文件.txt");
int b=0;
long startTime=System.currentTimeMillis();
while((b=in.read())!=-1){
out.write(b);
}
in.close();
out.close();
long endTime=System.currentTimeMillis();
System.out.println("非缓冲花费的时间:"+(endTime-startTime)+"ms");
}
public static void main (String args[]) throws Exception{
stream();
bufferStream();
}
}
第四节 字符输入输出流
1,Reader 读取文件
2,Writer 写入文件