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的知识点总结,希望大家共同学习,共同进步
OReilly.Java.I.O.2nd.Edition.May.2006 Java的io包主要包括: 1. 两种流:字节流(byte Stream)和字符流(character stream),这两种流不存在所谓的谁代替谁、谁比谁高级之说,它们互为补充,只是侧重点不同...
java i/o 实例 编程 学习 教程 复习,,,,,,,,,,,,,,,,,,,,,
Java I/O, 2nd Edition
Elliotte Rusty Harold 的《Java I/O, 2nd Edition》。通常找到的版本是.chm格式的电子书转成的Pdf,而且效果不好。我将.chm文件和一个自己转成的pdf文件一起打包放上来,以便大家查阅。第一版的一个pdf文件也一起...
Java I/O 流代码实例大全(01~09) File、FileInputStream、FileOutputStream、FileReader、FileWriter、BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
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是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...
数据流的概念及输入输出方法 字节流和字符流 文件、文件流 随机访问文件 过滤流 管道流 对象流 数据流小结
java I/o java I/o 详细介绍课件
简单介绍了java 的输入输出系统中类的使用,java1.0和java1.1中的类的来源去向
NULL 博文链接:https://xace.iteye.com/blog/706935
使用Java编写的一个可使用I/O读写文件的通讯录,具体可实现添加联系人、删除联系人、修改联系人、查看联系人等,无前端页面控制台输入输出 学习JavaI/O流的可下载学习
一个java输入输出流的小例子,适合初学者
java i/o练习题,附带答案 主要练习输入,输出流...
这是一篇关于javaSe的基础班关于IO流的全套总结,希望能对你的基础学习有所帮助。
java I/O流处理的ppt,详细描述了I/O的各个流,对学习很有帮助!
NULL 博文链接:https://zhycaf.iteye.com/blog/981738
本资源转载自网络,如有侵权,请联系上传者或csdn删除。 本资源转载自网络,如有侵权,请联系上传者或csdn删除。 本资源转载自网络,如有侵权,请联系上传者或csdn删除。