字节流读写文件效率问题

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class fuzhi2 {
    public static void main(String []args){
        try {
            FileInputStream fis =new FileInputStream("a.mp3");
            FileOutputStream fos =new FileOutputStream("a4.mp3");
            int read=fis.read();
            byte[] buf = new byte[1024];
            int len = 0 ;
            while((len=fis.read(buf)) != -1){
            fos.write(buf,0,len);
//            read=fis.read();
            }
//            while(read !=-1){
//                fos.write(read);
//                read=fis.read();
//            }
            fis.close();
            fos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

通过对代码的读写进行一些改变,可以让原本缓慢的读写变得高效率起来,原本复制一首歌曲需要10s以上,现在通过改善,1s都用不了即能把歌曲复制出来。更改的代码如下:

原代码:

         read=fis.read();
         while(read !=-1){
                fos.write(read);
                read=fis.read();
            } 更改后:
            int read=fis.read();
            byte[] buf = new byte[1024];
            int len = 0 ;
            while((len=fis.read(buf)) != -1){
            fos.write(buf,0,len);}    更改后一次往磁盘文件中写入了1024个字节,而原代码方法一次只写入1个字节,则需要写1024次,这就使得效率不一样,运行速度也不一样。
时间: 2024-11-08 03:40:02

字节流读写文件效率问题的相关文章

JAVA字节流(读写文件)

InputStream此抽象类是表示字节输入流的所有类的超类.需要定义 InputStream 的子类的应用程序必须始终提供返回下一个输入字节的方法. int available()返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数.void close()关闭此输入流并释放与该流关联的所有系统资源.void mark(int readlimit)在此输入流中标记当前的位置.boolean markSupported()测试此输入流是否支持 mark 和 reset 方

java使用字节流操作文件

概述:摘录下统计的常用的字节流操作情况,很全面,值得看看! 一.IO流(字节流File读写文件) 1 import java.io.*; 2 public class FileStream { 3 4 public static void main(String[] args) throws IOException{ 5 6 } 7 8 public static void readFile_1() throws IOException{ 9 FileInputStream fis=new Fi

java.io几种读写文件的方式

一.Java把这些不同来源和目标的数据都统一抽象为数据流. Java语言的输入输出功能是十分强大而灵活的. 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流. 这里介绍几种读写文件的方式 二.InputStream.OutputStream(字节流) //读取文件(字节流) InputStream in = new FileInputStream("d:\\1.txt"); //写入相应的文件

Java IO如何读写文件

Java把这些不同来源和目标的数据都统一抽象为数据流:Java语言的输入输出功能是十分强大而灵活的:在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流. 这里介绍几种读写文件的方式: 一.InputStream.OutputStream(字节流) //读取文件(字节流) InputStream in = new FileInputStream("d:\\1.txt"); //写入相应的文件 Out

Android简易实战教程--第十五话《在外部存储中读写文件》

第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意这个问题 因此把文件保存到sd卡中.即今天所写的  第十五话<在外部存储中读写文件> 首先布局文件和第七话一样: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:

Java读写文件的几种方式

自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行三种方式来进行文件的操作. import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.F

Python读写文件实际操作的五大步骤

Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下面我们就详细介绍其应用程序. 一.打开文件 Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下面我们就详细介绍其应用程序.代码如下: f = open("d:\test.txt", "w") 说明: 第一个参数是文件名称,包括路

Android 在内部存储读写文件

文件读写操作* Ram内存:运行内存,相当于电脑的内存* Rom内存:内部存储空间,相当于电脑的硬盘* sd卡:外部存储空间,相当于电脑的移动硬盘在内部存储空间中读写文件>小案例:用户输入账号密码,勾选“记住账号密码”,点击登录按钮,登录的同时持久化保存账号和密码.界面如下: 1. 定义布局 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&

JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)

1.流的简述及演示案例输入流和输出流相对于内存设备而言.将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出.字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表.获取对应的文字.在对这个文字进行操作.简单说:字节流+编码表字节流的两个顶层父类:1,InputStream 2,OutputStream.字符流的两个顶层父类:1,Reader 2,Writer String filePath = "F:\\demo.txt"; FileWriter f