美文网首页
Java学习——day 16

Java学习——day 16

作者: 振礼硕晨 | 来源:发表于2019-01-11 09:33 被阅读0次

主要内容

  • 使用输入流和输出流实现文件的拷贝
  • 字符流

笔记详情

1. 使用输入流和输出流实现文件的拷贝

import java.io.*;
import java.util.Arrays;

/**
 * 使用输入流和输出流实现文件的拷贝
 */
public class Demo05 {

    public static void main(String[] args) throws FileNotFoundException, IOException {

        // 建立文件的联系
        File src = new File("src/file/1.jpg");
        File dest = new File("src/file/2.jpg");

        // 选择流
        InputStream is = new FileInputStream(src);
        OutputStream os = new FileOutputStream(dest);
        
        byte[] data = new byte[10];       // 每次读取和写入的字节大小
        int len = 0;

        // 不断读取和写入
        while ((len = is.read(data)) != -1) {
            os.write(data);
            os.flush();
        }

        // 关闭的时候,先打开的后关闭
        os.close();
        is.close();
    }
}

2. 字符流

Java中的字符流和字节流的用法大同小异,但是不同的是字节流可以处理一切文件(纯文本、音视频等等),但是字符流只能处理出文本文件。之前的文章中Java学习——day 15介绍过字节流,这里就不过多介绍,直接给出两个实例:

实例1:使用字符流实现文件的读取
import java.io.*;
import java.util.Arrays;

public class Demo07 {

    public static void main(String[] args) {

        File txtFile = new File("src/file/test.txt");
        
        Reader readerTxt = null;

        try {
            readerTxt = new FileReader(txtFile);
            char[] flush = new char[5];     // 每次读取文件的内容
            int len;
            while ((len = readerTxt.read(flush)) != -1) {
                System.out.println(new String(flush, 0, len));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            System.out.println("文件未找到");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件读取失败");
        } finally {
            try {
                readerTxt.close();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("文件关闭失败");
            }
        }
    }
}
实例2:使用字符流实现文件的写出
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class Demo08 {

    public static void main(String[] args) {

        File txtFile = new File("src/file/1.txt");

        Writer wFile = null;

        try {
            wFile = new FileWriter(txtFile, true);       // 以追加的形式写入文件
            String src = "坚定目标,永不放弃!";
            wFile.write(src);
            wFile.flush();      // 写出文件之后强制刷新
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件打开失败");
        } finally {
            try {
                wFile.close();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("文件关闭失败");
            }
        }
    }
}

相关文章

  • Java学习——day 16

    主要内容 使用输入流和输出流实现文件的拷贝 字符流 笔记详情 1. 使用输入流和输出流实现文件的拷贝 2. 字符流...

  • Java学习Day16

    今日学习内容总结 字节流的输入及输出 IO流 IO的分类 根据数据的流向分为:输入流和输出流。 输入流 :把数据从...

  • java day 16

    Object Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中...

  • Java学习day-16:容器-List

    一、Collection接口: 1.List接口: (1)Collection表示一组对象,而List、Set是C...

  • Day16打造千面英雄之旅

    DAY16 学习课程:《Day16-西方经典作品鉴赏,打造千面英雄之旅,击穿用户心智》 今日作业:复盘你自己的英...

  • Java学习笔记

    Java学习笔记 day1 public class Hello2 { ​ public static voi...

  • 你并不会因为多知道一些东西,而变得比别人更好

    【改变自己】#日更day15+日更day16# 今天继续聊《刻意学习》的读书心得。 1、学习是和自己的偏见做斗争 ...

  • 本宫的24堂正念训练课Day16-Day20

    文:锦璱(简书) Day16.正念引导+感恩 早/朋友圈打卡Day16 晚/训练总结Day16 Day17.善行 ...

  • Expressing Uncertainty

    Day 16-英语学习打卡Date:5th Oct 16:30-17:15Topic:EC沟通中级Expressi...

  • Java day16

网友评论

      本文标题:Java学习——day 16

      本文链接:https://www.haomeiwen.com/subject/xerwrqtx.html