黑马程序员------演示MP3和图片以及.java文件的复制
2014-09-23 21:46
369 查看
------Java培训、Android训、iOS培训、Net培训、期待与您交流!------
通过学习MP3,图片及java文件的复制,可以把一个文件从一处复制到另一处,我学到在复制的原理,基本上都是通过字节流的缓冲区完成,下面举例:
1、演示MP3的复制,通过缓冲区
public class CopyMp3 {
public static void main(String[] args) throws IOException {
long start=System.currentTimeMillis();//开始运行时间
copy_2();
long end=System.currentTimeMillis();//结束运行时间
System.out.println((end-start)+"毫秒");//总的运行时间
}
//通过字节流的缓冲区完成复制
public static void copy_1() throws IOException
{
BufferedInputStream bufis=new BufferedInputStream(new FileInputStream("0.mp3")); //创建带有缓冲区的读取字节流对象
BufferedOutputStream bufos=new BufferedOutputStream(new FileOutputStream("1.mp3"));//创建带有缓冲区的写字节流对象
int by=0;
while((by=bufis.read())!=-1)//字节流的循环读取
{
bufos.write(by); //字节流写入
}
bufos.close(); //关闭写字节流
bufis.close();//关闭读字节流
}
//通过自定义字节流的缓冲区完成复制
public static void copy_2() throws IOException
{
MyBufferedInputStream bufis=new MyBufferedInputStream(new FileInputStream("0.mp3")); //创建自定义带有缓冲区的读取字节流对象
BufferedOutputStream bufos=new BufferedOutputStream(new FileOutputStream("1.mp3"));/
4000
/创建自定义带有缓冲区的写字节流对象
int by=0;
while((by=bufis.myRead())!=-1)//字节流的循环读取
{
bufos.write(by);//字节流写入
}
bufos.close();//关闭写字节流
bufis.myClose();//关闭读字节流
}
2、复制一个图片
思路:
1,用字节读取流对象和图片关联
2,用字节写入流对象创建一个图片文件,用于存储获取到的图片。
3,通过循环读取,完成数据存储
4,关闭资源
public class CopyPic {
public static void main(String[] args) {
FileOutputStream fos=null; //定义文件输出流对象
FileInputStream fis=null; //定义文件输入流对象
try {
fos=new FileOutputStream("2.jpeg"); //创建文件输出流对象
fis=new FileInputStream("1.jpeg"); //创建文件输入流对象
byte[] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1)//循环读取
{
fos.write(buf,0,len); //写入输出流
}
}
catch (IOException e)
{
throw new RuntimeException("复制文件失败");
}
finally{
try {
if(fis!=null) fis.close();//关闭文件输入流
}
catch (IOException e)
{
throw new RuntimeException("读取关闭失败");
}
try {
if(fos!=null) fos.close(); //关闭文件输出流
}
catch (IOException e)
{
throw new RuntimeException("写入关闭失败");
}
}
}
}
3、通过缓冲区复制一个.java文件
public class CopyTextbuf {
public static void main(String[] args) {
BufferedReader bufr=null; //定义读取缓冲区
BufferedWriter bufw=null; //定义写入流缓冲区
try
{ bufr=new BufferedReader(new FileReader("BufferedWriterDemo.java")); //创建读取缓冲区对象
bufw=new BufferedWriter(new FileWriter("BufW_copy.txt")); //创建写入流对象
String line =null;
while((line=bufr.readLine())!=null) //循环读取一行
{
bufw.write(line); //写入缓冲流
bufw.newLine();//换行
bufw.flush();//刷新
}
}
catch(IOException e)
{ System.out.println(e);
throw new RuntimeException("读写失败");
}
finally{
try{
if(bufr!=null) bufr.close(); //关闭读取流对象缓冲区
}
catch(IOException e)
{
throw new RuntimeException("读取关闭失败");
}
try{
if(bufw!=null) bufw.close(); //关闭写入读取流对象缓冲区
}
catch(IOException e)
{
throw new RuntimeException("写入关闭失败");
}
}
}
------Java培训、Android训、iOS培训、Net培训、期待与您交流!------
通过学习MP3,图片及java文件的复制,可以把一个文件从一处复制到另一处,我学到在复制的原理,基本上都是通过字节流的缓冲区完成,下面举例:
1、演示MP3的复制,通过缓冲区
public class CopyMp3 {
public static void main(String[] args) throws IOException {
long start=System.currentTimeMillis();//开始运行时间
copy_2();
long end=System.currentTimeMillis();//结束运行时间
System.out.println((end-start)+"毫秒");//总的运行时间
}
//通过字节流的缓冲区完成复制
public static void copy_1() throws IOException
{
BufferedInputStream bufis=new BufferedInputStream(new FileInputStream("0.mp3")); //创建带有缓冲区的读取字节流对象
BufferedOutputStream bufos=new BufferedOutputStream(new FileOutputStream("1.mp3"));//创建带有缓冲区的写字节流对象
int by=0;
while((by=bufis.read())!=-1)//字节流的循环读取
{
bufos.write(by); //字节流写入
}
bufos.close(); //关闭写字节流
bufis.close();//关闭读字节流
}
//通过自定义字节流的缓冲区完成复制
public static void copy_2() throws IOException
{
MyBufferedInputStream bufis=new MyBufferedInputStream(new FileInputStream("0.mp3")); //创建自定义带有缓冲区的读取字节流对象
BufferedOutputStream bufos=new BufferedOutputStream(new FileOutputStream("1.mp3"));/
4000
/创建自定义带有缓冲区的写字节流对象
int by=0;
while((by=bufis.myRead())!=-1)//字节流的循环读取
{
bufos.write(by);//字节流写入
}
bufos.close();//关闭写字节流
bufis.myClose();//关闭读字节流
}
2、复制一个图片
思路:
1,用字节读取流对象和图片关联
2,用字节写入流对象创建一个图片文件,用于存储获取到的图片。
3,通过循环读取,完成数据存储
4,关闭资源
public class CopyPic {
public static void main(String[] args) {
FileOutputStream fos=null; //定义文件输出流对象
FileInputStream fis=null; //定义文件输入流对象
try {
fos=new FileOutputStream("2.jpeg"); //创建文件输出流对象
fis=new FileInputStream("1.jpeg"); //创建文件输入流对象
byte[] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1)//循环读取
{
fos.write(buf,0,len); //写入输出流
}
}
catch (IOException e)
{
throw new RuntimeException("复制文件失败");
}
finally{
try {
if(fis!=null) fis.close();//关闭文件输入流
}
catch (IOException e)
{
throw new RuntimeException("读取关闭失败");
}
try {
if(fos!=null) fos.close(); //关闭文件输出流
}
catch (IOException e)
{
throw new RuntimeException("写入关闭失败");
}
}
}
}
3、通过缓冲区复制一个.java文件
public class CopyTextbuf {
public static void main(String[] args) {
BufferedReader bufr=null; //定义读取缓冲区
BufferedWriter bufw=null; //定义写入流缓冲区
try
{ bufr=new BufferedReader(new FileReader("BufferedWriterDemo.java")); //创建读取缓冲区对象
bufw=new BufferedWriter(new FileWriter("BufW_copy.txt")); //创建写入流对象
String line =null;
while((line=bufr.readLine())!=null) //循环读取一行
{
bufw.write(line); //写入缓冲流
bufw.newLine();//换行
bufw.flush();//刷新
}
}
catch(IOException e)
{ System.out.println(e);
throw new RuntimeException("读写失败");
}
finally{
try{
if(bufr!=null) bufr.close(); //关闭读取流对象缓冲区
}
catch(IOException e)
{
throw new RuntimeException("读取关闭失败");
}
try{
if(bufw!=null) bufw.close(); //关闭写入读取流对象缓冲区
}
catch(IOException e)
{
throw new RuntimeException("写入关闭失败");
}
}
}
------Java培训、Android训、iOS培训、Net培训、期待与您交流!------
相关文章推荐
- 黑马程序员——IO字节流复制图片以及MP3文件的方法
- java中图片文件的传输及显示(Socket以及ServerSocket演示)
- Java杂谈之读写文件,复制图片以及下载网站链接资源
- java复制文件夹以及其中的文件
- Java 复制文件夹以及文件夹下的所有文件
- 黑马程序员——java基础之文件复制
- java基础-用IO演示文件的复制过程(学习笔记)
- 黑马程序员_java初操作使用FileReader及FileWriter进行文件复制
- 黑马程序员:java文件复制问题
- Java基础---Java---IO流-----LineNumberReader方法及原理、自定义一个LineNumberReader、字节流、图片复制、mp3复制、
- 黑马程序员-多文件开发以及Xcode功能演示
- 黑马程序员_.java文件的复制与改名
- 黑马程序员-----java文件的复制操作合集
- 获取MP3和M4A音乐文件的歌曲信息以及专辑图片
- !精品!附上自己不外传的JAVA笔记一份,不能提供下载,只能复制,理论逻辑图片有几张失效(原是Word文件),甚是遗憾啊!!
- java 上传文件以及各种视频图片!
- FileOutputStream 类 和 FileInputStream类的简单介绍,附代码演示。以及一个复制媒体文件的小程序。
- java实现保存文件图片以及读取
- java文件,图片的复制
- 黑马程序员 【】java学习之路—— 能否用字符流复制图片?