查看: 131120|回复: 480

Java的I/O流(⊙﹏⊙)b

[复制链接]
  • TA的每日心情
    无聊
    2017-6-6 21:29
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2015-9-9 10:44:19 | 显示全部楼层 |阅读模式
    本帖最后由 xiaoye 于 2015-9-30 10:50 编辑

                                                                                           Java的I/O是什么?Java的I/O可用来做什么?如何实现Java的I/O?
    I/O全称是Input/Output,Java的I/O就是Java的输入与输出操作。与之相关的接口和类都放在java.io包里面,
    因而,在进行Java输入输出操作时,需要导入该包。
    利用Java的I/O大大地扩展了系统的输入与输出范畴,不仅可以从控制台输入输出,还可以从其他数据存储形式进行输入输出,例如本地文件、远程数据库等。
    Java的I/O在文件数据的读写、数据的网络发送与接收等很多场合发挥着重要作用。

       Java的I/O如此有用,那么如何实现Java的I/O呢?实际上,Java的I/O操作时基于流的方式来实现的。它包括字节流和字符流。字节流,简而言之,就是数据的输入与输出采用字节的形式流入和流出;字符流,顾名思义,就是数据的输入与输出采用字符的形式流入和流出。

       Java的I/O常用字节输入流包括FileInputStreamBufferedInputStreamDateInputStream
    与之对应的字节输出流包括FileOutputStream、BufferedOutputStream和DateOutputStream,前者是抽象类InputStream的子类,后者是抽象类OutputStream的子类。
    Java的I/O常用字符输入流包括FileReader和BufferedReader,与之对应的字符输出流包括FileWriter和BufferedWriter,
    前者是抽象类Reader的子类,后者是抽象类Writer的子类。而这些类都放在java.io包里。因而,在使用各种流进行操作的时候,
    可以查阅该包下各种流类的定义,根据具体的问题和业务需求,选择合适的构造器、属性和方法进行处理。
    现在让我们来实战求解一个具体问题。
    问题描述:请把从控制台输入的数据保存到一个文本文件里,实现数据持久化。
      解题分析:
    1.对于从控制台输入,需要设计一个输入流用来读取控制台所输入的内容,代码如下:
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
    2.记录读取的内容,代码如下:
    String content = br.readLine();  
    3.检查用来存储内容的文件是否存在,若是不存在,创建文件,若是存在,则通知已有。代码如下:
         File file = new File("C:\\content.txt");  
            if(file.exists() && file.isFile())  
    {  
      System.out.println("用来保存记录内容的文件已存在");  
    }  
            else  
    {  
              try  
      {  
        file.createNewFile();  
      }  
      catch(IOException e)  
      {  
        e.printStackTrace();  
      }  
    }  
    设计一个输出流,把所记录的内容保存到文本文件。代码如下:
    try  
    {  
      FileWriter fw = new FileWriter(file);  
      BufferedWriter bw = new BufferedWriter(fw);  
      bw.write(content);  
      bw.close();  
      fw.close();  
    }  
    catch(IOException e)  
    {  
      e.printStackTrace();  
    }  
    最后附上我的完整代码
    package com.jieke.io;  
      
    import java.io.*;  
    /**
    *<p>Title:SaveDataToFile</p>
    *<p>Description:把控制台输入的数据保存到一个文件里,实现数据持久化</p>
    *<p>Filename:SaveDataToFile.java</p>
    */  
      
    public class SaveDataToFile  
    {  
    public static void main(String[] args)  
    {  
      String content = "";  
      try  
      {  
       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
       content = br.readLine();  
       br.close();  
      }  
      catch(IOException e)  
      {  
       e.printStackTrace();  
      }  
      
      File file = new File("C:\\content.txt");  
      if(file.exists() && file.isFile())  
      {  
       System.out.println("用来保存记录内容的文件已存在");  
      }  
      else  
      {  
       try  
       {  
         file.createNewFile();  
       }  
       catch(IOException e)  
       {  
         e.printStackTrace();  
       }  
      }  
      
      try  
      {  
       FileWriter fw = new FileWriter(file);  
       BufferedWriter bw = new BufferedWriter(fw);  
       bw.write(content);  
       bw.close();  
       fw.close();  
      }  
      catch(IOException e)  
      {  
       e.printStackTrace();  
      }  
    }  
    }
    回复

    使用道具 举报

    该用户从未签到

    发表于 2015-9-9 22:49:13 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-10 04:30:12 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-10 21:46:21 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-10 23:58:48 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-11 06:02:39 | 显示全部楼层
    支持,看起来不错呢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-11 21:57:36 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-12 07:23:09 | 显示全部楼层
    支持中国红客联盟(ihonker.org)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-10-21 10:32
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2015-9-12 09:03:14 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-2-12 22:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2015-9-12 11:03:56 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-5-17 14:09 , Processed in 0.023054 second(s), 13 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部