第十八章 Java I/O流(3)

1.输入输出流(单字节读取)

package cn.itcast_02;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 需求:复制文本内容到另一处(单字节复制)
 */
public class CopyFileDemo {
    public static void main(String[] args) throws IOException {
        //获取流对象
        FileInputStream fis = new FileInputStream("a.txt");
        FileOutputStream fos = new FileOutputStream("b.txt");
        //先读取文本内容(input要写数据到流中用输入流)再输出 到另一处
        //一个字节一个字节的读(返回的是该字节本身)读一个写一个
        int i = 0;
        //返回值i表示字节本身
        while((i=fis.read())!=-1){
            //写
            fos.write(i);
        }
        fis.close();
        fos.close();
    }
}

2.输入输出流(字节数组读取)

 1 package cn.itcast_02;
 2 import java.io.FileInputStream;
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 /**
 6 需求:复制文本内容到另一处(字节数组复制)
 7 */
 8 public class CopyFileDemo2 {
 9     public static void main(String[] args) throws IOException {
10         //获取流对象将a.txt复制到b.txt
11         FileInputStream fis = new FileInputStream("a.txt");
12         FileOutputStream fos = new FileOutputStream("b.txt");
13         //定义一个字节数组
14         byte[] bs = new byte[1024];
15         int len = 0;//带参数的read方法返回的是读取的字节个数
16         while((len=fis.read(bs))!=-1){
17             System.out.println(len);
18             fos.write(bs,0,len);
19         }
20         fis.close();
21         fos.close();
22     }
23 }

3.缓冲流

 1 package cn.itcast_02;
 2
 3 import java.io.BufferedInputStream;
 4 import java.io.BufferedOutputStream;
 5 import java.io.FileInputStream;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8
 9 /**
10  * 流。。。。。。。。。。
11  */
12 public class Demo {
13     public static void main(String[] args) throws IOException {
14         long start = System.currentTimeMillis();
15         //method1("aaa.mp3","bbb.mp3");//556毫秒
16         //method2("aaa.mp3", "bbb.mp3");// 197毫秒
17          //method3("aaa.mp3","bbb.mp3");//...毫秒
18          method4("aaa.mp3","bbb.mp3");//1454毫秒
19         long end = System.currentTimeMillis();
20         System.out.println(end - start);
21     }
22
23     // 高效缓冲流单字节读取
24     public static void method1(String s1, String s2) throws IOException {
25         // 获取流对象
26         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(s1));
27         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(s2));
28         //单字节读写
29         int i =0;
30         while((i=bis.read())!=-1){
31             bos.write(i);
32         }
33         bis.close();
34         bos.close();
35     }
36
37     // 高效缓冲流字节数组读取
38     public static void method2(String s1, String s2) throws IOException {
39         // 获取流对象
40         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(s1));
41         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(s2));
42         // 循环读取操作
43         byte[] by = new byte[1024];
44         int len = 0;
45         while ((len = bis.read(by)) != -1) {
46             bos.write(by, 0, len);
47         }
48         bis.close();
49         bos.close();
50     }
51
52     // 普通流单字节读取
53     public static void method3(String s1, String s2) throws IOException {
54         FileInputStream fis = new FileInputStream(s1);
55         FileOutputStream fos = new FileOutputStream(s2);
56         //单字节读写
57         int i = 0;
58         while((i=fis.read())!=-1){
59             fos.write(i);
60         }
61         fis.close();
62         fos.close();
63     }
64
65     // 普通流字节数组读取
66     public static void method4(String s1, String s2) throws IOException {
67         FileInputStream fis = new FileInputStream(s1);
68         FileOutputStream fos = new FileOutputStream(s2);
69         //字节数组的读写
70         byte[] by = new byte[1024];
71         int len = 0;
72         while((len=fis.read(by))!=-1){
73             fos.write(by,0,len);
74         }
75         fis.close();
76         fos.close();
77     }
78
79 }
时间: 2024-10-17 04:06:20

第十八章 Java I/O流(3)的相关文章

第十八章 Java I/O流(2)

1.获取指定目录下的所有文件或文件夹 1 package cn.itcast_01; 2 import java.io.File; 3 import java.io.IOException; 4 /** 5 * 需求:获取指定目录下的所有文件和目录(返回的是名称数组或File数组) 6 */ 7 public class FileDemo5 { 8 public static void main(String[] args) { 9 //创建file对象并指定抽象路径名 10 File file

Thinking in Java--第十八章-Java I/O系统

Java I/O的类有很多.我们要去学习I/O类库演化的过程.因为,如果缺少历史的眼光,我们很快就会对什么时候该使用哪些类,以及什么时候不该使用它们而感到困惑. 18.1 File类 这个称作FilePath类更好一些 package com.sdkd.JavaIO; import java.io.File; import java.io.FilenameFilter; import java.util.Arrays; import java.util.regex.Pattern; public

JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习

JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了.如果你初学,不懂IO流,你可以从前往后慢慢看,但是你工作了一段时间你会发现,流的使用场景以及技术点是非常的强硬的,我们势必要掌握这个知识点,如果你觉得翻阅API比较鼓噪,看视频得不到精髓,看书看不到要点,你就跟随我的JAVA之旅,一起去探索吧! 一.I/O概述 I/O全名:Input Output

第十八章 文本处理流编辑器:sed命令

第十八章 文本处理流编辑器:sed命令 名词解释 sed 是一种流编辑器,它是文本处理常用到的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化多文件的反复操作,编写转换程序等. sed的选项.命令

“全栈2019”Java第二十八章:数组详解(上篇)

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第二十八章:数组详解(上篇) 下一章 "全栈2019"Java第二十九章:数组详解(中篇) 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组"

“全栈2019”Java第四十八章:重写方法Override

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第四十八章:重写方法Override 下一章 "全栈2019"Java第四十九章:重载与重写对比详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组

“全栈2019”Java第八十八章:接口中嵌套接口的应用场景

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第八十八章:接口中嵌套接口的应用场景 下一章 "全栈2019"Java第八十九章:接口中能定义内部类吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习

“全栈2019”Java第九十八章:局部内部类访问作用域成员详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十八章:局部内部类访问作用域成员详解 下一章 "全栈2019"Java第九十九章:局部内部类与继承详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学

“全栈2019”Java异常第十八章:Exception详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异常第十八章:Exception详解 下一章 "全栈2019"Java异常第十九章:RuntimeException详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&quo