Java的I/O流(⊙﹏⊙)b
本帖最后由 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常用字节输入流包括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();
}
}
设计一个输出流,把所记录的内容保存到文本文件。代码如下:
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();
}
}
} 学习学习技术,加油! 还是不错的哦,顶了 还是不错的哦,顶了 还是不错的哦,顶了 支持,看起来不错呢! 感谢楼主的分享~ 支持中国红客联盟(ihonker.org) 感谢楼主的分享~ 学习学习技术,加油!