初识java的几种io流

简介: 最近刚刚学习了java的io流,今天抽空把io流里面的BufferedReader,BufferedWriter,FileInputStream,FileOutputStream,PrintWriter的基本读写方法总结了一趟

最近刚刚学习了java的io流,今天抽空把io流里面的BufferedReader,BufferedWriter,FileInputStream,FileOutputStream,PrintWriter的基本读写方法总结了一趟


package com.lh.iostream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class iostream_text {
    /*
     * 用打印流PrintWriter來写入数据
     * 
     * */
    public  void printstream(StringBuffer str) throws IOException
    {
        String content = String.valueOf(str);
        File file = new File("src/lab02.txt");
        if (!file.exists()) {
            file.createNewFile();
        }
        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        PrintWriter prw = new PrintWriter(fw);
        long start = System.currentTimeMillis();
        prw.write(content); 
        prw.flush(); // 因为数据读取的时候,一般都是先将数据读取到内存里面,然后再是写入到文本里面的,
        // 当数据读取完毕的时候并不意味着内容就完全写入到了文本里面了
        // 此时文本内容还有可能会留在了缓存区里面,因此我们需要对缓存里面的数据进行flush();
        System.out.println("---------printwriter is ok!---------");
        long end = System.currentTimeMillis();
        long total = end - start;
        System.out.println("the total time is:" + total + "ms");
        prw.close();
        fw.close();
    }
    /*
     * 用BufferedReader来写入数据
     * 
     * */
    public void bufferedwriter(StringBuffer str) throws IOException
    {
        String content = String.valueOf(str);
        File file = new File("src/lab03.txt");
        if (!file.exists()) {
            file.createNewFile();
        }
        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bfw = new BufferedWriter(fw);
        long start = System.currentTimeMillis();
        bfw.write(content); 
        bfw.flush(); // 因为数据读取的时候,一般都是先将数据读取到内存里面,然后再是写入到文本里面的,
        // 当数据读取完毕的时候并不意味着内容就完全写入到了文本里面了
        // 此时文本内容还有可能会留在了缓存区里面,因此我们需要对缓存里面的数据进行flush();
        System.out.println("---------BufferedReader is ok!---------");
        long end = System.currentTimeMillis();
        long total = end - start;
        System.out.println("the total time is:" + total + "ms");
        bfw.close();
        fw.close();
    }
    /*
     * 用打印流fileoutputwriter來写入数据
     * 
     * */
    public  void fileoutputwriter(StringBuffer str) throws IOException
    {
        String content = String.valueOf(str);
        File file = new File("src/lab04.txt");
        if (!file.exists()) {
            file.createNewFile();
        }
        byte Contentbyte[]=content.getBytes();
        FileOutputStream out=new FileOutputStream(file);
        long start = System.currentTimeMillis();
        out.write(Contentbyte,0,Contentbyte.length);
        System.out.println("----------FileOutputStream is ok!---------");
        long end = System.currentTimeMillis();
        long total = end - start;
        System.out.println("the total time is:" + total + "ms");
        out.close();
    }
    public void bufferedreader(File file) throws IOException
    {
        BufferedReader bfr=new BufferedReader(new FileReader(file));
        String content=null;
        long start = System.currentTimeMillis();
        while(bfr.readLine() != null)
        {
            content=content+(bfr.readLine()+'\n');
        }
        System.out.println("----------BufferedReader is ok!---------");
        long end = System.currentTimeMillis();
        long total = end - start;
        System.out.println("the total time is:" + total + "ms");
        bfr.close();
    }
    public void fileinputstream(File file) throws IOException
    {
        FileInputStream in=new FileInputStream(file);
        long start = System.currentTimeMillis();
        byte Content_byte[]=new byte[(int) file.length()];
        in.read(Content_byte);
        System.out.println("----------fileinputstream is ok!---------");
        long end = System.currentTimeMillis();
        long total = end - start;
        System.out.println("the total time is:" + total + "ms");
        in.close();
    }
    public static void main(String[] sda) throws IOException {
        iostream_text io=new iostream_text();
        StringBuffer str_text=new StringBuffer();
        for (int i = 0; i < 4000; i++) {  
            str_text = str_text.append("s");  //str_text所能容纳的字符串长度和jvm自身的内存有关
        }
        File file =new File("src/lab01.txt");
        io.printstream(str_text);
        io.bufferedwriter(str_text);
        io.bufferedreader(file);
        io.fileoutputwriter(str_text);
        io.fileinputstream(file);
    }
}


目录
相关文章
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
1月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
67 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
1月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
揭秘Java IO流:字节流与字符流的神秘面纱!
35 1
|
1月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
77 1
|
1月前
|
Java
Java 中 IO 流的分类详解
【10月更文挑战第10天】不同类型的 IO 流具有不同的特点和适用场景,我们可以根据具体的需求选择合适的流来进行数据的输入和输出操作。在实际应用中,还可以通过组合使用多种流来实现更复杂的功能。
46 0
|
2月前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
|
1月前
|
存储 Java 程序员
【Java】文件IO
【Java】文件IO
37 0
|
2月前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践
|
3月前
|
Java 数据处理
Java IO 接口(Input)究竟隐藏着怎样的神秘用法?快来一探究竟,解锁高效编程新境界!
【8月更文挑战第22天】Java的输入输出(IO)操作至关重要,它支持从多种来源读取数据,如文件、网络等。常用输入流包括`FileInputStream`,适用于按字节读取文件;结合`BufferedInputStream`可提升读取效率。此外,通过`Socket`和相关输入流,还能实现网络数据读取。合理选用这些流能有效支持程序的数据处理需求。
46 2