------- android培训java培训、期待与您交流!
----------

IO(Input Output)流



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

Java对数据的操作是通过流的方式

Java用于操作流的对象都在IO包中

流按操作数据分为两种:字节流与字符流。

流按流向分为:输入流,输出流。

 IO流常用基类

字节流的抽象基类:InputStream ,OutputStream。

字符流的抽象基类: Reader ,Writer。

注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

•  如:InputStream的子类FileInputStream。

•  如:Reader的子类FileReader。

IO程序的书写

导入IO包中的类

进行IO异常处理

在finally中对流进行关闭

字符流——创建文件



创建流对象,建立数据存放文件     FileWriter fw = new FileWriter(“Test.txt”);



调用流对象的写入方法,将数据写入流        fw.write(“text”);



关闭流资源,并将流中的数据清空到文件中      fw.close();

import java.io.FileWriter;
import java.io.IOException; public class IODemo
{
public static void main(String[] args)
{
FileWriter fw = null; try
{
fw = new FileWriter("Test.txt");
fw.write("test");
}
catch (IOException e)
{
System.out.println(e.toString());
}
finally
{
if (fw != null)
try
{
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}

字符流——读取文件

建立一个流对象,将已存在的一个文件加载进流。       FileReader fr = new FileReader(“Test.txt”);

创建一个临时存放数据的数组        char[] ch = new char[1024];

调用流对象的读取方法将流中的数据读入到数组中            fr.read(ch);

import java.io.FileReader;
import java.io.IOException; public class IODemo
{
public static void main(String[] args)
{
FileReader fr = null; try
{
fr = new FileReader("E:\\JAVA\\Demo\\Test.txt");
char[] buf = new char[1024];
int len = 0;
while ((len = fr.read(buf)) != -1)
{
System.out.println(new String(buf,0,len));
}
}
catch (IOException e)
{
System.out.println("read Exception:"+e.toString());
}
finally
{
if (fr != null)
{
try
{
fr.close();
}
catch (IOException e)
{
System.out.println("close Exception"+e.toString());
}
}
}
}
}

注意:

定义文件路径时,可以用“/”或者“\\”。

在创建一个文件时,如果目录下有同名文件将被覆盖。

在读取文件时,必须保证该文件已存在,否则出异常。

flush()和close()区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。

FileWriter(): 后缀是父类名,前面是该流对象的功能

import java.io.FileWriter;
import java.io.IOException; /**
*
* 需求:在硬盘上创建一个文件并写入一些数据
*
*/ public class IODemo
{
public static void main(String[] args) throws IOException
{
//创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
//而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。
//其实该步就是在明确数据要存放的目的地。
FileWriter fw = new FileWriter("FileWriter.txt"); //调用write方法,将字符串写入到流中。
fw.write("The code run!"); //刷新流对象中的缓冲中的数据。
//将数据刷到目的地中。
fw.flush(); //关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。
//将数据刷到目的地中。
//和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。
fw.close();
}
}

通过实验发现,FileWriter() 会覆盖已有数据,要通过传递参数true来续写。

import java.io.FileWriter;
import java.io.IOException; /**
*
* 需求:在硬盘上续写一些数据
*
*/ public class IODemo
{
public static void main(String[] args) throws IOException
{ FileWriter fw = new FileWriter("FileWriter.txt",true); fw.write("The code run!"); fw.close();
}
}

FileReader读取的第一种方式:

import java.io.FileReader;
import java.io.IOException; /**
*
* FileReader演示:
*
*/
public class FileReaderDemo
{
public static void main(String[] args) throws IOException
{
//创建一个文件读取流对象,和指定名称的文件相关联。
//要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException
FileReader fr = new FileReader("E:\\JAVA\\Demo\\FileWriter.txt"); int ch = 0; //调用读取流对象的read方法。
//read():一次读一个字符。而且会自动往下读。
while ((ch = fr.read()) != -1)
{
System.out.println((char)ch);
}
fr.close();
}
}

第二种:

import java.io.FileReader;
import java.io.IOException; /**
*
* FileReader演示:
*
*/
public class FileReaderDemo
{
public static void main(String[] args) throws IOException
{ FileReader fr = new FileReader("E:\\JAVA\\Demo\\FileWriter.txt"); char[] buf = new char[1024]; int len = 0; while ((len = fr.read(buf)) != -1)
{
System.out.println(new String(buf,0,len));
}
fr.close();
}
}
/*
需求:将C盘一个文本文件复制到D盘。 复制的原理:
其实就是将C盘下的文件数据存储到D盘的一个文件中。 步骤:
1,在D盘创建一个文件。用于存储C盘文件中的数据。
2,定义读取流和C盘文件关联。
3,通过不断的读写完成数据存储。
4,关闭资源。
*/
import java.io.*; class CopyText
{
public static void main(String[] args) throws IOException
{
copy();
} public static void copy()
{
FileWriter fw = null;
FileReader fr = null;
try
{
fw = new FileWriter("SystemDemo_copy.txt");
fr = new FileReader("SystemDemo.java"); char[] buf = new char[1024]; int len = 0;
while((len=fr.read(buf))!=-1)
{
fw.write(buf,0,len);
}
}
catch (IOException e)
{
throw new RuntimeException("读写失败"); }
finally
{
if(fr!=null)
try
{
fr.close();
}
catch (IOException e)
{
}
if(fw!=null)
try
{
fw.close();
}
catch (IOException e)
{
}
}
}
}

------- android培训java培训、期待与您交流!
----------

黑马程序员——JAVA基础之IO流FileReader,FileWriter的更多相关文章

  1. 黑马程序员——JAVA基础之IO流缓冲区,转换流,字节流

    ------- android培训.java培训.期待与您交流! ---------- 字符流的缓冲区        缓冲区的出现提高了对数据的读写效率. 对应类 •  BufferedWriter ...

  2. 黑马程序员_Java基础:IO流总结

    ------- android培训.java培训.期待与您交流! ---------- IO流在是java中非常重要,也是应用非常频繁的一种技术.初学者要是能把IO技术的学透,java基础也就能更加牢 ...

  3. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

  4. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  5. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  6. 黑马程序员——JAVA基础之网络编程

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...

  7. 黑马程序员 Java基础<十八>---> 网路编程

    --------------- ASP.Net+Android+IO开发S..Net培训.期待与您交流! --------------- 第一  概述 一.概述: 1.网络模型:OSI参考模型和TCP ...

  8. 黑马程序员——JAVA基础之泛型和通配符

    ------- android培训.java培训.期待与您交流! ---------- 泛型:            JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...

  9. 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象

    ------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...

随机推荐

  1. JS事件大全

    橙色表示“非常常用”  绿色表示“常用” onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDblClick IE4|N4|O 鼠标双击事件 onMouseD ...

  2. iOS多线程之GCD学习笔记

    什么是GCD 1.全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 2.纯C语言,提供了非常多强大的函数 GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 G ...

  3. HDU 1045 - Fire Net (最大独立集)

    题意:给你一个正方形棋盘.每个棋子可以直线攻击,除非隔着石头.现在要求所有棋子都不互相攻击,问最多可以放多少个棋子. 这个题可以用搜索来做.每个棋子考虑放与不放两种情况,然后再判断是否能互相攻击来剪枝 ...

  4. TCP同步传送数据示例以及可能出现问题分析

    TCP传送数据可以分为同步传送和异步传送,首先这里使用了TCP的同步传送方式,学习了TCP同步传送数据的原理. 同步工作方式是指利用TCP编写的程序执行到监听或者接受数据语句的时候,在未完成当前工作( ...

  5. hdu 2080

    ps:水题...求夹角...先求出COS,然后用acos 代码: #include "stdio.h" #include "math.h" int main() ...

  6. Ubuntu安装软件提示”需要安装不能信任的软件包”解决办法

    用 Ubuntu 安装输入法软件包时提示"需要安装不能信任的软件包","这个动作需要从没有授权的软件源来安装软件包",赋予权限执行仍然无法安装,上网查了一下,只 ...

  7. ubuntu文件夹右键没有共享选项

    在配置samba的时候,不知道出了什么错误,我就删除了samba,之后在ubuntu文件上按右键就没有共享的选项了,这样每次配置都得进samba麻烦. 我重新安装了samba也不行,郁闷! 解决: 1 ...

  8. ERP登录(八)

    登录的存储过程: ALTER PROCEDURE [dbo].[UserLogin] @userid int output, @LoginName nvarchar(50), @Password nv ...

  9. Android系统在新进程中启动自定义服务过程(startService)的原理分析

    在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验.Android系统为我们提供了一个Service类,我们可以实现 ...

  10. 11、SQL基础整理(变量)

    变量 定义变量:declare  @hello  varchar(20) 赋值:set  @hello = ‘你好’ select(结果框显示)/print(消息框显示) @hello *三行必须同时 ...