IO流

   在java语言中,我们是通过流的形式来输入和输出数据的,在IO流中最重要的是有五大类和一个接口,其中五大类是指InputStream、OutputStream、Reader、Writer和File,接口是Serializeable。下面是我学习InputStream和OutputStream的一些小结: 

    我们要在要把一个文件拿到程序中去,就必须通过一个输入流来输入到程序中去,通过InputStream可以把字符转化为字节形式输入到程序中去;然后再通过OutputStream可以把字节流转化为字符的形式,放到指定的文件。
特征:
InputStream:为字节输入流,本身为抽象类,必须依靠其子类实现各种功能,此抽象类是表示字节输入流的所有类的超类
OutputStream:为字节输出流,是整个IO包中字节输出流的最大父类,也是一个抽象类,要使用此类必须通过子类实例化对象



    读取文件用不同的方法也方法也有有不同的效果,他们的效率和读写速度到会受到不同的影响。。。

有这种方法的优点就是效率高速度快;但是会使输出的文件大小发生变化,会变大了,因为读取的时候是以256个字节一次来读的


 try{ 

//创建输入输出流对象
in = new FileInputStream(srcPath);
out = new FileOutputStream(destPath);
//读写操作
//有这种方法的优点就是效率高速度快;但存在的却是是文件变大了
byte[] buf = new byte[256];
int i = in.read(buf);
while(i!=-1){
out.write(buf);
i = in.read(buf);
}
}

这种方法是效率比较低,读写的速度比较慢,但是这种方法刚刚好弥补了上面那一种方法的缺点,不会改变文件的大小
try{ 

//创建输入输出流对象
in = new FileInputStream(srcPath);
out = new FileOutputStream(destPath);
//读写操作
int i = in.read();
while(i!=1){
out.write(i);
i = in.read();
}
}

这里文件的路径一定要写好,如果前一个路径与后面的一个路径相同会使源文件损坏,文件里的内容全部清空,所以路径的填写一定要确定好

 StreamTest test = new StreamTest(); 

//复制文件,前一个是所要复制文件的路径,后一个路径是复制文件存放的路径
test.copyFile("C:\\Users\\Administrator\\Desktop\\新建文件夹 (2)\\新建文本文档.txt","C:\\Users\\Administrator\\Desktop\\新建文件夹 (2)\\新建文本文档-副本.txt");

你可能感兴趣的:(java,IO)