`
wsql
  • 浏览: 11808959 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Java的I/O

 
阅读更多

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常用字节输入流包括FileInputStream、BufferedInputStream和DateInputStream,与之对应的字节输出流包括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();
  }
}

4)设计一个输出流,把所记录的内容保存到文本文件。代码如下:

try
{
  FileWriter fw = new FileWriter(file);
  BufferedWriter bw = new BufferedWriter(fw);
  bw.write(content);
  bw.close();
  fw.close();
}
catch(IOException e)
{
  e.printStackTrace();
}

或者

try
{
  PrintWriter pw = new PrintWriter(file);
  pw.write(content);
  pw.close();
}
catch(FileNotFoundException e)
{
  e.printStackTrace();
}

完整代码如下:

package com.jieke.io;

import java.io.*;
/**
 *<p>Title:SaveDataToFile</p>
 *<p>Description:把控制台输入的数据保存到一个文件里,实现数据持久化</p>
 *<p>Copyright:copyright(c) 2012</p>
 *<p>Filename:SaveDataToFile.java</p>
 *@author Wang Luqing
 *@version 1.0
 */

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();
  }
 }
}

总结:

1)Java的I/O十分有用,深入了解和应用Java的IO包十分有必要。

2)所谓的输入与输出都是相对于程序而言,换句话说,就是以程序为参照系。

分享到:
评论

相关推荐

    java I/O内容

    这是一个关于Java I/O的知识点总结,希望大家共同学习,共同进步

    Java I/O 第二版

    OReilly.Java.I.O.2nd.Edition.May.2006 Java的io包主要包括: 1. 两种流:字节流(byte Stream)和字符流(character stream),这两种流不存在所谓的谁代替谁、谁比谁高级之说,它们互为补充,只是侧重点不同...

    java i/o 实例 编程 学习 教程 复习

    java i/o 实例 编程 学习 教程 复习,,,,,,,,,,,,,,,,,,,,,

    Java I/O, 2nd Edition

    Java I/O, 2nd Edition

    Java I/O: Tips and Techniques for Putting I/O to Work, 2nd Edition

    Elliotte Rusty Harold 的《Java I/O, 2nd Edition》。通常找到的版本是.chm格式的电子书转成的Pdf,而且效果不好。我将.chm文件和一个自己转成的pdf文件一起打包放上来,以便大家查阅。第一版的一个pdf文件也一起...

    Java I/O 流代码实例大全(01~09)

    Java I/O 流代码实例大全(01~09) File、FileInputStream、FileOutputStream、FileReader、FileWriter、BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter

    Java I/O详细笔记

    Java I/O详细笔记

    Java I/O总结

    Java I/O总结  从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的  Java I/O总结——InputStream  Java I/O总结——OutputStream  Java I/O总结——Reader  Java I/O总结——...

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...

    Java I/O编程 java

    数据流的概念及输入输出方法 字节流和字符流 文件、文件流 随机访问文件 过滤流 管道流 对象流 数据流小结

    java I/o 详细介绍课件

    java I/o java I/o 详细介绍课件

    java I/O类的使用

    简单介绍了java 的输入输出系统中类的使用,java1.0和java1.1中的类的来源去向

    Java 新I/O

    NULL 博文链接:https://xace.iteye.com/blog/706935

    Java I/O流通讯录

    使用Java编写的一个可使用I/O读写文件的通讯录,具体可实现添加联系人、删除联系人、修改联系人、查看联系人等,无前端页面控制台输入输出 学习JavaI/O流的可下载学习

    javaI/O示例---简易聊天程序代码

    一个java输入输出流的小例子,适合初学者

    java i/0习题

    java i/o练习题,附带答案 主要练习输入,输出流...

    java I/O流总结

    这是一篇关于javaSe的基础班关于IO流的全套总结,希望能对你的基础学习有所帮助。

    java对I/O流的处理

    java I/O流处理的ppt,详细描述了I/O的各个流,对学习很有帮助!

    Java I/O 过滤流-带格式的读写操作

    NULL 博文链接:https://zhycaf.iteye.com/blog/981738

    Java I/O, NIO and NIO.2

    本资源转载自网络,如有侵权,请联系上传者或csdn删除。 本资源转载自网络,如有侵权,请联系上传者或csdn删除。 本资源转载自网络,如有侵权,请联系上传者或csdn删除。

Global site tag (gtag.js) - Google Analytics