IO概述:

                                                        

IO(Input output)流

作用:IO流用来处理设备之间的数据传输

Java对数据的操作是通过流的方式
             Java用于操作流的对象都在IO包中

流按操作数据分为两种:字节流和字符流
流按流向分为:输入流,输出流。

IO流常用基类
字节流的抽象基类:
InputStream,OutputStream.
字符流的抽象基类:
Reader,Writer
注:由这四个类派生出来的子类名称都是以其父类名作为子类的后缀。
如:InputStream的子类FileInputStream.
如:Reader的子类FileReader。

字符流和字节流:
字节流两个基类:
InputStream的子类FileInputStream.
字符流两个基类:
Reader Writer
先学习一下字符流的特点。
既然IO流式用于操作数据的,那么数据的最常见的体现形式是:文件。
那么先以操作文件为主来演示。
功能:在硬盘上创建一个文件并写入一些文字数据。
import java.io.FileWriter;
import java.io.IOException; class Filewrite_study {
public static void main(String[] args) throws IOException {
/*
* 创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
* 而且该文件会被创建到指定的目录下,如果该目录下已经有同名文件将被覆盖. 其实该步就是在明确数据要存放的目的地.
*/ FileWriter fw = new FileWriter("代码建立文件.txt"); /*调用writer方法,将字符串写入到流中。*/
fw.write("星云学习java文件读写!"); /* 刷新流对象中的缓冲中的数据。
* 将数据刷到目的地中*/
fw.flush();
fw.write("星云加油!"); /*
* 关闭流资源,但是关闭前会刷新一次内部的缓冲区中的数据 将数据刷到目的地中
* 和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭
*/
fw.close();
}
}

运行截图:



完整的IO异常 处理方式:

import java.io.*;

class Filewrite_study
{
public static void main(String args[])
{
FileWriter fw=null;
try
{
fw=new FileWriter("d:\\demo.txt");
fw.write("IO完整处理异常!");
}
//处理文件建立失败、写入文件失败异常
catch(IOException e)
{
System.out.println(e.toString());
}
finally
{
try
{
if(fw!=null)
fw.close();
}
//处理文件关闭错误异常
catch(IOException e)
{
System.out.println(e.toString());
}
}
} }

文件追加续写:

/*
演示对已有文件的数据续写。
*/
import java.io.*; class Filewrite_study {
public static void main(String[] args) throws IOException
{
/*传递一个true参数,代表不覆盖已有的文件。
*并在已有的文件末尾处进行数据读写。
*java文件读写在windows环境下要换行,需要"\r\n"一起用*/
FileWriter fw = new FileWriter("代码建立文件.txt",true);
fw.write("星云学习\r\njava文件读写!");
fw.close();
}
}

文件一个字符一个字符读取:


代码如下:

import java.io.FileReader;
import java.io.IOException;
class Filereader_study
{
public static void main(String args[])throws IOException
{ //创建一个文件读取对象,和指定名称的文件相关联。
//要保证该文件是已经存在的,如果不存在,会发生 FileNotFoundException异常。
FileReader fr=new FileReader("代码建立文件.txt"); //调用读取流对象的Read方法.
while(true){
int ch=fr.read();//读取单个字符,一个字符一个字符读。
if(ch==-1)
break;
else
System.out.print((char)ch);
}
fr.close();
}
}

上面代码优化后可以这样写:

import java.io.FileReader;
import java.io.IOException;
class Filereader_study
{
public static void main(String args[])throws IOException
{ //创建一个文件读取对象,和指定名称的文件相关联。
//要保证该文件是已经存在的,如果不存在,会发生 FileNotFoundException异常。
FileReader fr=new FileReader("代码建立文件.txt"); //调用读取流对象的Read方法.
int ch=fr.read();
while((ch=fr.read())!=-1){
System.out.print((char)ch);
}
fr.close();
}
}

运行截图:


通过字符数组进行读文件:

/*通过字符数组进行读取*/

import java.io.FileReader;
import java.io.IOException;
class Filereader_study
{
public static void main(String args[])throws IOException
{ FileReader fr=new FileReader("代码建立文件.txt"); /* 定义一个字符数组,用于存储读到的字符。
* 该read(char[])返回的是读到的字符个数.*/ char[] buf=new char[1024];
int num=0;
while((num=fr.read(buf))!=-1)
{
/*String(char[] value, int offset, int count)
* 分配一个新的 String,它包含取自字符数组参数一个子数组的字符。
* String(buf,0,num):数组buf中从数组开始位置,偏移num位。 */ System.out.print(new String(buf,0,num));
}
fr.close();
}
}

JAVA之IO文件读写的更多相关文章

  1. Java 字节流实现文件读写操作(InputStream-OutputStream)

    Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...

  2. Java学习笔记-文件读写和Json数组

    Java文件读写 Java中I/O流对文件的读写有很多种方法,百度后主要看了以下三种 第一种方式:使用FileWriter和FileReader,对文件内容按字符读取,代码如下 String dir ...

  3. java 对txt文件读写(已经封装好)

    读文件: public static String readTxt(String txtPath) { File file = new File(txtPath); if(file.isFile() ...

  4. java源码——文件读写和单词统计

    本文要解决的问题:"键盘输入一段英语语句,将这段话写入content.txt中,然后输出这段话,并且统计语句中英文单词的数目以及各个单词出现的次数." 分析问题知,核心是文件读写和 ...

  5. Java基础IO文件拷贝练习题

    /** * 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt. */ 1.我们看到这个题还是用大化小的思想来做 分析:1.拷贝 & ...

  6. 使用pt-ioprofile监控数据库io文件读写情况

    我们在做IO密集型的应用程序的时候,比如MySQL数据库,通常系统的表现取决于workload的类型. 比如我们要调优,我们就必须非常清楚的知道数据的访问规律,收集到足够的数据,用来做调优的依据. 有 ...

  7. python IO 文件读写

    IO 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题. 如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这100M数据可 ...

  8. java IO文件读写例子(OutputStream,InputStream,Writer,Reader)

    一,File创建文件 File file = new File("D:" + File.separator + "yi.txt"); 代码示例: package ...

  9. java io 文件读写操作

    写: import java.io.*; String filePath= "F:\\test.txt"; FileWriter fwriter = null; fwriter = ...

随机推荐

  1. 【String与基本类型之间的转换】以及【进制转换】

    1. 基本数据类型---->字符串类型: 方法一:使用连接一个空字符串,例如  基本数据类型+“” : 方法二:静态方法 String.valueOf(),具体有: String.valueOf ...

  2. 如何编写 Cloud9 JavaScript IDE 的功能扩展

    上周末我们在JSConf.eu发布了 Cloud9 IDE ,同时发布了对应的GitHub项目.在4天时间里该项目得到340个人的关注和将近50个fork.Cloud9的口号是由"由Java ...

  3. 需要知道关于struct的一些事情

    前言 重构代码的时候,会遇到长参数的方法,此时就需要使用“引入参数对象”来封装这些参数.大多数时候,这些参数都是简单类型,而且所有参数的值占用的空间也不是非常的大,此时使用对象真的好吗?对象的特性是堆 ...

  4. .NET Core 1.0-最简单的Hello world控制台程序

    使用任意的文本编辑软件,新建两个文件 1.Program.cs using System; using System.Collections.Generic; using System.Linq; u ...

  5. Oracle中的Temporary tablespace的作用

    临时表空间主要用途是在数据库进行排序运算[如创建索引.order by及group by.distinct.union/intersect/minus/.sort-merge及join.analyze ...

  6. 用JQ仿造礼德财富网的图片查看器

    现在就职于一家P2P平台,自然也会关注同行其它网站的前端技术,今天要仿造的是礼德内页的一个图片查看器效果.不过说白了,无论人人贷也好礼德财富也好,很多地方的前端都做的不尽如人意,比如忽略细节.缺乏交互 ...

  7. Java多线程8:wait()和notify()/notifyAll()

    轮询 线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之间要相互通信和协作. 想像一个场景,A线程做int型变量i的累加操作,B线程等待i到了10000就打印出i,怎么处 ...

  8. kali 在线教学群 第一次 公开课 小结(1)

    kali 在线教学群 第一次 公开课 小结(1) 文/玄魂 1.1 需要准备的基础环境 vmware 虚拟机,kali 2.0 镜像,科学上网工具包.这三项内容,可以在本人的微信订阅号“xuanhun ...

  9. Flume概述和简单实例

    Flume概述 Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方( ...

  10. javascript笔记:javascript的关键所在---作用域链

    javascript里的作用域是理解javascript语言的关键所在,正确使用作用域原理才能写出高效的javascript代码,很多javascript技巧也是围绕作用域进行的,今天我要总结一下关于 ...