美文网首页
【四】IO流基础

【四】IO流基础

作者: xxxxxxxxx_ios | 来源:发表于2019-01-04 10:49 被阅读10次

1.复制文本文件的5种方式

A:利用基本流一次读写一个字符
B:利用基本流一次读写一个字符数组
C:利用缓冲流一次读写一个字符
D:利用缓冲流一次读写一个字符数组
E:利用缓冲流的特有方法一次读写一个字符串

  • 代码
package com.itheima_06;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 复制文本文件(5种方式)
 * 
 * 数据源:
 *      FileWriterDemo.java
 * 目的地:
 *      Copy.java
 */
public class CopyFileTest {
    public static void main(String[] args) throws IOException {
        /*
        method1("FileWriterDemo.java","Copy.java");
        method2("FileWriterDemo.java","Copy.java");
        method3("FileWriterDemo.java","Copy.java");
        method4("FileWriterDemo.java","Copy.java");
        method5("FileWriterDemo.java","Copy.java");
        */
        
        String srcFileName = "FileWriterDemo.java";
        String destFileName = "Copy.java";
        
//      method1(srcFileName,destFileName);
//      method2(srcFileName,destFileName);
        method3(srcFileName,destFileName);
//      method4(srcFileName,destFileName);
//      method5(srcFileName,destFileName);
    }
    
    //缓冲流一次读写一个字符串
    public static void method5(String srcFileName,String destFileName) throws IOException {
        //创建输入缓冲流对象
        BufferedReader br = new BufferedReader(new FileReader(srcFileName));
        //创建输出缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
        
        //一次读写一个字符串
        String line;
        while((line=br.readLine())!=null){
            bw.write(line);
            bw.newLine();
            bw.flush();
        }
        
        //释放资源
        bw.close();
        br.close();
    }
    
    //缓冲流一次读写一个字符数组
    public static void method4(String srcFileName,String destFileName) throws IOException {
        //创建输入缓冲流对象
        BufferedReader br = new BufferedReader(new FileReader(srcFileName));
        //创建输出缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
        
        //一次读写一个字符数组
        char[] chs = new char[1024];
        int len;
        while((len=br.read(chs))!=-1) {
            bw.write(chs,0,len);
        }
        
        //释放资源
        bw.close();
        br.close();
    }
    
    //缓冲流一次读写一个字符
    public static void method3(String srcFileName,String destFileName) throws IOException {
        //创建输入缓冲流对象
        BufferedReader br = new BufferedReader(new FileReader(srcFileName));
        //创建输出缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
        
        //一次读写一个字符
        int ch;
        while((ch=br.read())!=-1) {
            bw.write(ch);
        }
        
        //释放资源
        bw.close();
        br.close();
    }
    
    //基本流一次读写一个字符数组
    public static void method2(String srcFileName,String destFileName) throws IOException {
        //创建输入流对象
        FileReader fr = new FileReader(srcFileName);
        //创建输出流对象
        FileWriter fw = new FileWriter(destFileName);
        
        //一次读写一个字符数组
        char[] chs = new char[1024];
        int len;
        while((len=fr.read(chs))!=-1) {
            fw.write(chs,0,len);
        }
        
        //释放资源
        fw.close();
        fr.close();
    }
    
    //基本流一次读写一个字符
    public static void method1(String srcFileName,String destFileName) throws IOException {
        //创建输入流对象
        FileReader fr = new FileReader(srcFileName);
        //创建输出流对象
        FileWriter fw = new FileWriter(destFileName);
        
        //一次读写一个字符
        int ch;
        while((ch=fr.read())!=-1) {
            fw.write(ch);
        }
        
        //释放资源
        fw.close();
        fr.close();
    }
}

2.把集合中的数据写到文本文件

  • 代码
package com.itheima_06;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

/*
 * 把ArrayList集合中的字符串数据存储到文本文件
 * 每一个字符串元素作为文件中的一行数据
 * 
 * 分析:
 *      A:创建集合对象
 *      B:往集合中添加字符串元素
 *      C:创建输出缓冲流对象
 *      D:遍历集合,得到每一个字符串元素,然后把该字符串元素作为数据写到文本文件
 *      E:释放资源
 */
public class ArrayListToFileTest {
    public static void main(String[] args) throws IOException {
        //创建集合对象
        ArrayList<String> array = new ArrayList<String>();
        
        //往集合中添加字符串元素
        array.add("hello");
        array.add("world");
        array.add("java");
        
        //创建输出缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("array.txt"));
        
        //遍历集合,得到每一个字符串元素,然后把该字符串元素作为数据写到文本文件
        for(int x=0; x<array.size(); x++) {
            String s = array.get(x);
            bw.write(s);
            bw.newLine();
            bw.flush();
        }
        
        //释放资源
        bw.close();
    }
}

3.把文本文件中的数据读取到集合

  • 代码
package com.itheima_06;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

/*
 * 从文本文件中读取数据到ArrayList集合中,并遍历集合
 * 每一行数据作为一个字符串元素
 * 
 * 分析:
 *      A:创建输入缓冲流对象
 *      B:创建集合对象
 *      C:读取数据,每次读取一行数据,把该行数据作为一个元素存储到集合中
 *      D:释放资源
 *      E:遍历集合
 */
public class FileToArrayListTest {
    public static void main(String[] args) throws IOException {
        //创建输入缓冲流对象
        BufferedReader br = new  BufferedReader(new FileReader("array.txt"));
        
        //创建集合对象
        ArrayList<String> array = new ArrayList<String>();
        
        //读取数据,每次读取一行数据,把该行数据作为一个元素存储到集合中
        String line;
        while((line=br.readLine())!=null) {
            array.add(line);
        }
        
        //释放资源
        br.close();
        
        //遍历集合
        for(int x=0; x<array.size(); x++) {
            String s = array.get(x);
            System.out.println(s);
        }
    }
}

相关文章

  • (四)IO流基础

    1、IO流基本介绍 Java是通过‘流’的方式对数据进行操作,而IO(Input Output)流就是用来处理设备...

  • 【四】IO流基础

    1.复制文本文件的5种方式 A:利用基本流一次读写一个字符B:利用基本流一次读写一个字符数组C:利用缓冲流一次读写...

  • java基础之IO流

    IO流上:概述、字符流、缓冲区(java基础) IO流结构图 FilterInputStream、FilterOu...

  • 2018-10-10

    掘金50道基础 io流案例

  • java io 流

    java io 流 io 流总览 io 流主要提供四个接口 InputStream: 输入字节流 OutputSt...

  • 这个真的写的很细,JavaIO中的常用处理流,看完只有10%的人

    JavaIO中的常用处理流 在前面,我们了解了有关JavaIO流基础的使用,其中对于IO流来说最基础的四大基类就是...

  • java IO入门笔记

    1.java IO流的概念,分类,类图 1.1. java IO 流的概念 java的io是实现输入和输出的基础,...

  • Java IO详解

    1 Java IO流的概念,分类 1.1 Java IO流的概念 java的IO是实现输入和输出的基础,可以方便的...

  • Java基础之IO流

    ##Java基础之IO流IO流常用几个类的关系如下: 字节流 字节输入流FileInputStream 读取文件用...

  • Java基础-IO流-网络IO

    Java工程师知识树[https://www.jianshu.com/p/db77d19a25f6] / Ja...

网友评论

      本文标题:【四】IO流基础

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