JAVA-字节流练习(新手用于记录每天的作业)

这篇博客主要介绍了JAVA字节流的使用,通过 FileInputStream 和 FileOutputStream 实现文件内容的读写。重点讲解了 read() 方法以及如何进行换行操作。提供了具体的代码实例,包括读写指定文件内容的示例。
摘要由CSDN通过智能技术生成

参考手册:

在这里插入图片描述
在这里插入图片描述

关键字:

FileInputStream() Input是从硬盘到内存
FileOutputStream() 而output是从内存到硬盘,所以实现了复制粘贴。
read() 调用方法读取
\r\n 换行

实例:

      1 import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
      2 
      3 import java.io.*;
      4 
      5 public class ZJLlx {
      6     public static void main(String[] args) throws IOException {
      7         lx6();
      8     }
      9 
     10     private static void lx6() {
     11         //currentTimeMillis 返回以毫秒为单位的当前时间。
     12         //计算开始时间。
     13         long s = System.currentTimeMillis();
     14         FileInputStream fis = null;
     15         FileOutputStream fos = null;
     16         try {
     17             fis = new FileInputStream("C:\\bxd.AVI");
     18             fos = new FileOutputStream("D:\\bxd.AVI");
     19             //创建一个字节数组,他的字节传输速度是1024*10。
     20             byte[] b = new byte[1024*10];
     21             //定义一个数据类型。
     22             int len = 0;
     23             //写入判断语句。按照字节数组的传输速度进行传送。
     24             while ((len=fis.read(b))!=-1){
     25                 //按照b的速度,从0开始,一直到结束。
     26                 fos.write(b,0,len);
     27             }
     28         } catch (IOException e) {
     29             e.printStackTrace();
     30         }
     31         //最终执行的代码段。
     32         finally {
     33             //判断是否执行,如果执行过之后就结束释放资源。
     34             //如果没有执行过,就跳过If语句。
     35             if (fis!=null){
     36                 try {
     37                     fis.close();
     38                 } catch (IOException e) {
     39                     e.printStackTrace();
     40                 } finally{
     41                     if (fos!=null){
     42                         try {
     43                             fos.close();
     44                         } catch (IOException e) {
     45                             e.printStackTrace();
     46                         }
     47                     }
     48                 }
     49             }
     50             //计算结束时间。
     51             long e = System.currentTimeMillis();
     52             //打印。
     53             System.out.println(e-s);
     54         }
     55     }
     56 
     57     private static void lx5() {
     58         //设置对象。
     59         FileInputStream fis = null;
     60         FileOutputStream fos = null;
     61         try {
     62             //指定要复制的文件及路径。Input是从硬盘到内存。
     63             fis = new FileInputStream("C:\\ja.txt");
     64             //指定要粘贴的文件及路径。而output是从内存到硬盘,所以实现了复制粘贴。
     65             fos = new FileOutputStream("D:\\ja.txt");
     66             //定义一个数据类型。
     67             int len = 0;
     68             //定义判断条件。
     69             while ((len = fis.read())!=-1){
     70                 fos.write(len);
     71             }
     72         } catch (IOException e) {
     73             e.printStackTrace();
     74         }
     75         //最终执行的代码段。
     76         finally {
     77             //判断是否执行,如果执行过之后就结束释放资源。
     78             //如果没有执行过,就跳过If语句。
     79             if(fos!=null){
     80                 try {
     81                     fos.close();
     82                 } catch (IOException e) {
     83                     e.printStackTrace();
     84                 }
     85                 //最终执行的代码段。
     86                 finally {
     87                     //判断是否执行,如果执行过之后就结束释放资源。
     88                     //如果没有执行过,就跳过If语句,不进行判断。
     89                     if (fis!=null){
     90                         try {
     91                             fis.close();
     92                         } catch (IOException e) {
     93                             throw new RuntimeException("释放资源失败。");
     94                         }
     95                     }
     96                 }
     97             }
     98         }
     99     }
    100 
    101     public static void lx4() {
    102         //FileInputStream 从硬盘到内存,进行显示。
    103         try {
    104             FileInputStream fis = new FileInputStream("D:\\ja.txt");
    105             byte[] b = new byte[1024];
    106             int len = 0;
    107             while ((len = fis.read(b))!=-1){
    108                 System.out.println(new String(b,0,len));
    109             }
    110         } catch (IOException e) {
    111             e.printStackTrace();
    112         }
    113 
    114     }
    115 
    116     public static void lx3() {
    117         //读写指定文件的内容。
    118         //调用方法读取 read
    119         try {
    120             FileInputStream fis = new FileInputStream("D:\\ja.txt");
    121             int len = 0;
    122             while((len=fis.read())!=-1){
    123                 System.out.println((char)len);
    124             }
    125         } catch (IOException e) {
    126             e.printStackTrace();
    127         }
    128 
    129     }
    130 
    131     private static void lx2() throws IOException {
    132         //FileOutputStream 从内存写入到硬盘,但是不会在控制台显示。
    133         File file = new File("D:\\ja.txt");
    134         FileOutputStream fos = new FileOutputStream(file,true);
    135         fos.write("Hello \r\n".getBytes());
    136         fos.write("\r\nqy\r\n97".getBytes());
    137         fos.close();
    138     }
    139 
    140     public static void lx1() throws IOException {
    141         FileOutputStream fos = new FileOutputStream("D:\\ja.txt");
    142         fos.write(97);
    143         byte[] b = {66,9,45,12,48};
    144         fos.write(b,1,4);
    145         fos.write("Show Arrays".getBytes());
    146         fos.close();
    147     }
    148 
    149 }

打印结果:

lx1:

在这里插入图片描述

lx2:

在这里插入图片描述

lx3(读写指定文件的内容):

a
     
-

0
S
h
o
w
  
A
r
r
a
y
s
H
e
l
l
o
  
 
 
 
 
 
 
q
y
 
 
 
9
7

lx4:

a   -0Show ArraysHello
 
qy
97

lx5:

在这里插入图片描述

lx6:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值