查看: 176367|回复: 480

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

[复制链接]
发表于 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)
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

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

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-3-7 03:08 , Processed in 0.020495 second(s), 9 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部