黑马程序员——JAVA基础之IO流FileReader,FileWriter
------- 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的更多相关文章
- 黑马程序员——JAVA基础之IO流缓冲区,转换流,字节流
------- android培训.java培训.期待与您交流! ---------- 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应类 • BufferedWriter ...
- 黑马程序员_Java基础:IO流总结
------- android培训.java培训.期待与您交流! ---------- IO流在是java中非常重要,也是应用非常频繁的一种技术.初学者要是能把IO技术的学透,java基础也就能更加牢 ...
- 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)
正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G QQ 1481135711 这是我总 ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- 黑马程序员——JAVA基础之网络编程
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...
- 黑马程序员 Java基础<十八>---> 网路编程
--------------- ASP.Net+Android+IO开发S..Net培训.期待与您交流! --------------- 第一 概述 一.概述: 1.网络模型:OSI参考模型和TCP ...
- 黑马程序员——JAVA基础之泛型和通配符
------- android培训.java培训.期待与您交流! ---------- 泛型: JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...
- 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象
------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...
随机推荐
- java基础-001
一.区分final . finally . finalize 1.关键字final Java语言的关键字final可以用于变量.类或方法,但是含义会有所不同. -用于变量:一旦初始化,变量值就不能修 ...
- 2013年7月份第2周51Aspx源码发布详情
FineOffice自动化办公(OA)源码 2013-7-12 [ VS2010 ]源码描述:此源码使用fineui开发,作为村居使用的系统,所以命名为fineoffice,其实你在此基础上扩成CR ...
- Linux下进程的建立
Linux下进程的建立 我们都知道,进程就是正在执行的程序.而在Linux中,可以使用一个进程来创建另外一个进程.这样的话,Linux的进程的组织结构其实有点像Linux目录树,是个层次结构的,可以使 ...
- ACM2013.9.7
acm还是要好好做的,还有好多的东西要学呢!不能不认真对待了,该玩够了!
- spark与Hadoop区别
2分钟读懂Hadoop和Spark的异同 2016.01.25 11:15:59 来源:51cto作者:51cto ( 0 条评论 ) 谈到大数据,相信大家对Hadoop和Apache Spark ...
- PHP中函数的使用
函数是一种可以在任何被需要的时候执行的代码块函数的定义 1.函数是一个被命名的独立的代码段 2.它执行特殊的任务 3.并可以给调用它的程序返回值 函数的优点: 1.提高程序的重 ...
- Error Handling and Exception
The default error handling in PHP is very simple.An error message with filename, line number and a m ...
- Android || IOS录制mp3语音文件方法
Android Android Supported Media Formats : http://developer.android.com/guide/appendix/media-formats. ...
- 解决远程桌面链接时出现"The RPC server is unavailable."或"RPC服务器不可用"的问题
解决远程桌面链接时出现"The RPC server is unavailable."或"RPC服务器不可用"的问题 解决远程桌面链接时出现"The ...
- HDU 1109
http://acm.hdu.edu.cn/showproblem.php?pid=1109 一个范围内给一堆点,求到这些点的最短距离最大 模拟退火,温度是步长 #include <iostre ...