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() 测试此抽象路径名表示的文件是否是一个目录。

---------------------------------------------------------------------------创建的目录、创建文件

                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("目录创建失败!");

}

---------------------------------------------------------------------------删除文件、删除目录

        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("删除目录失败!");
}
}

-------------------------------------------------------------------------------遍历目录

                File file=new File("D://SQLYogEnterprise//SQLyog_Enterprise");
File files[]=file.listFiles();  // 遍历目录
for(int i=0;i<files.length;i++){
System.out.println(files[i]);
}

------------------------------------------------------------------------------

/**
* 打印文件
* @param file
*/
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://eclipse_j2ee");
listFile(file);
}


字节输入,输出流

1,InputStream 读取文件
2,OutputStream 写入文件
3,BufferedInputStream 和 fBuferedOutputStream

4,缓冲和非缓冲的区别及性能对比

-----------------------------------------------------------输入

                File file=new File("D://测试文件.txt");
InputStream inputStream=new FileInputStream(file);  // 实例化FileInputStream
byte b[]=new byte[1024];
int len=inputStream.read(b);
inputStream.close(); // 关闭输入流
System.out.println("读取的内容是:"+new String(b,0,len));


                File file=new File("D://测试文件.txt");
InputStream inputStream=new FileInputStream(file);  // 实例化FileInputStream
int fileLength=(int)file.length();
byte b[]=new byte[fileLength];
inputStream.read(b);
inputStream.close(); // 关闭输入流
System.out.println("读取的内容是:"+new String(b));


                File file=new File("D://测试文件.txt");
InputStream inputStream=new FileInputStream(file);  // 实例化FileInputStream
int fileLength=(int)file.length();
byte b[]=new byte[fileLength];
int temp=0;
int len=0;
while((temp=inputStream.read())!=-1){
// 一个字节一个字节读取,放到b字节数组里
b[len++]=(byte)temp;
}
inputStream.close(); // 关闭输入流

System.out.println("读取的内容是:"+new String(b));

--------------------------------------------------------------------输出

        File file=new File("D://测试文件.txt");
OutputStream out=new FileOutputStream(file);
String str="你好,我好,大家好,Java好";
byte b[]=str.getBytes();
out.write(b); //  将b字节数组写入到输出流

out.close();  // 关闭输出流


                File file=new File("D://测试文件.txt");
OutputStream out=new FileOutputStream(file,true);
String str="你好,我好,大家好,Java好2321312312";
byte b[]=str.getBytes();
out.write(b); //  将b字节数组写入到输出流
out.close();  // 关闭输出流

-------------------------------------------------缓冲

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo6 {
/**
* 缓冲
*/
public static void bufferStream()throws Exception{
// 定义了一个带缓冲的字节输入流
BufferedInputStream bufferedInputStream=new BufferedInputStream(new FileInputStream("D://《一脚踹进J2SE》视频笔录2.doc"));
// 定义了一个带缓冲的字节输出流
BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream("F://赋值的文件2.doc"));
int b=0;
long startTime=System.currentTimeMillis(); // 开始时间
while((b=bufferedInputStream.read())!=-1){
bufferedOutputStream.write(b);
}
bufferedInputStream.close();
bufferedOutputStream.close();
long endTime=System.currentTimeMillis();  // 结束时间
System.out.println("缓冲花费的时间是:"+(endTime-startTime));
}

/**
* 非缓冲
*/
public static void stream() throws Exception{
InputStream inputStream=new FileInputStream("D://《一脚踹进J2SE》视频笔录.doc");  // 定义一个输入流
OutputStream outputStream=new FileOutputStream("F://赋值的文件.doc");
int b=0;
long startTime=System.currentTimeMillis(); // 开始时间
while((b=inputStream.read())!=-1){
outputStream.write(b);
}
inputStream.close();
outputStream.close();
long endTime=System.currentTimeMillis();  // 结束时间
System.out.println("非缓冲花费的时间是:"+(endTime-startTime));
}
public static void main(String[] args)throws Exception {
stream();
bufferStream();
}
}

字符输入,输出流

1,Reader 读取文件
2,Writer 写入文件

                File file=new File("D://测试文件.txt");
Reader reader=new FileReader(file);
char c[]=new char[1024]; // 字符数组
int len=reader.read(c);
reader.close();  // 关闭输入流
System.out.println("读取的内容是:"+new String(c,0,len));


                File file=new File("D://测试文件.txt");
Reader reader=new FileReader(file);
char c[]=new char[1024]; // 字符数组
int temp=0;
int len=0;
while((temp=reader.read())!=-1){
c[len++]=(char)temp;
}
reader.close();  // 关闭输入流
System.out.println("读取的内容是:"+new String(c,0,len));


                File file=new File("D://测试文件.txt");
Writer out=new FileWriter(file);
String str="我爱中华";
out.write(str);  // 将字符串写入输出流
out.close();  // 关闭输出流

                File file=new File("D://测试文件.txt");
Writer out=new FileWriter(file,true);
String str="我爱中华2";
out.write(str);  // 将字符串写入输出流
out.close();  // 关闭输出流


阅读更多
个人分类: java
上一篇多线程
下一篇JDBC
博主设置当前文章不允许评论。

文件流总结

2018年03月31日 29KB 下载

IO流读取和创建文件

2011年06月17日 5.19MB 下载

Java的例外处理和IO

2009年04月25日 106KB 下载

JAVA IO流小结

2011年08月29日 27KB 下载

IO流和异常处理

2017年12月27日 40KB 下载

java IO stream

2012年11月14日 769B 下载

IO流的主要流

2018年07月12日 69KB 下载

java IO流精讲 JAVA IO流实例开发

2010年03月15日 14KB 下载

没有更多推荐了,返回首页

关闭
关闭