字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
来源:互联网 发布:java switch分支语句 编辑:程序博客网 时间:2024/05/28 19:25
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
【IO】流 Input Output
【IO】流 Input Output
流按操作数据分为:字节流和字符流
流按流向分为:输入流和输出流
GBK---GB2312---18030---unicode---UTF-8
通用字节流【字符流】
字节流有两个抽象基类:InputStream读, OutputStream写
字符流有两个抽象基类:Reader , Writer
既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件。
需求:在硬盘上,创建一个文件并写入一些文字数据。
用于操作文件的Writer子类对象。FileWriter。后缀名是父类名。 前缀名是该流对象的功能。
import java.io.*;
class FileWriterDemo
{
public static void main(String[] args) throws IOException{
//创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。//而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。//其实该步就是在明确数据要存放的目的地。FileWriter fw = new FileWriter("demo.txt");//调用write方法,将字符串写入到流中。fw.write("abcde");//刷新流对象中的缓冲中的数据。//将数据刷到目的地中。//fw.flush();//关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。//将数据刷到目的地中。//和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。fw.close();
}
}【文件的续写】
演示对已有文件的数据续写。
import java.io.*;
class FileWriterDemo3
{
public static void main(String[] args) throws IOException{
//传递一个true参数,代表不覆盖已有的文件。并在已有文件的末尾处进行数据续写。FileWriter fw = new FileWriter("demo.txt",true);fw.write("nihao\r\nxiexie");//在win下,换行是两个字符fw.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_2();
}
//2
public static void copy_2()
{
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){}
}【BufferedWriter】
}
缓冲区的出现是为了提高流的操作效率而出现的。
所以在创建缓冲区之前,必须要先有流对象。
该缓冲区中提供了一个跨平台的换行符:newLine();它是缓冲区里的方法
import java.io.*;
class BufferedWriterDemo
{
public static void main(String[] args) throws IOException{
//创建一个字符写入流对象。FileWriter fw = new FileWriter("buf.txt");//为了提高字符写入流效率。加入了缓冲技术。//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可。BufferedWriter bufw = new BufferedWriter(fw);//bufw.write("ab\r\ncd");//\r\n在linux下\r就是多余的,newLine是跨平台的//bufw.newLine();//换行for(int x=1; x<5; x++)//只是为了多写点数据{bufw.write("abcd"+x);bufw.newLine();//换行方法bufw.flush();//缓冲区在内存里边,停电了缓冲区就没了,所以要刷}//记住,只要用到缓冲区,就要记得刷新。//bufw.flush();//其实关闭缓冲区,就是在关闭缓冲区中的流对象。bufw.close();
}
}【BufferedReader】
字符读取流缓冲区:
该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。
当返回null时,表示读到文件末尾。
readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。
import java.io.*;
class BufferedReaderDemo
{
public static void main(String[] args) throws IOException{
//创建一个读取流对象和文件相关联。FileReader fr = new FileReader("buf.txt");//为了提高效率。加入缓冲技术。将字符读取流对象作为参数传递给缓冲对象的构造函数。BufferedReader bufr = new BufferedReader(fr);String line = null;while((line=bufr.readLine())!=null){
System.out.print(line);
}bufr.close();
}
}
- 字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
- 黑马程序员_字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
- IO_字符流_纯文本_节点流_读取_写出_拷贝JAVA151
- 151_IO_字符流_纯文本_节点流_Reader_FileReader_Writer_FileWriter_读取_写出_拷贝
- IO_字节流_节点流_文件读取_写出_追加文件_拷贝文件JAVA147-148
- 149_IO_字节流_节点流_文件夹拷贝_工具制作_文件后缀与软件的关系
- IO_缓冲流_转换流_字节转为字符_乱码分析_编码与解码JAVA152-154
- 187_IO流_FileOutputStream_文件字节输出流_详解
- 189_IO流_FileReader_文件字符输入流_详解
- 148_IO_字节流_节点流_文件的拷贝
- 黑马程序员_IO流2_(字符缓冲区,字节缓冲区,字节字符转换流)
- 黑_马_程_序_员_字节流复制任意文件
- 黑马程序员_基础_IO流学习笔记_字节流的学习
- 黑马程序员_字节流、缓冲流
- java 自定义字节缓冲流_好慢啊
- 黑马程序员_Java基础_IO流_字节流,字节流操作文件,缓冲区字节流,流的使用规律,异常记录原理
- IO_字节流_节点流_文件夹拷贝_工具制作_文件后缀与软件的关系JAVA149、163
- 147_IO_节点流_字节流_文件读取_写出_追加文件
- java1.5新特性之枚举总结
- 在Delphi下,使用线程向窗体发送动态数组数据的解决方法~
- bochs 安装 有感
- 通过JMX监控管理weblogic的运行
- 36个引人注目JQuery导航菜单
- 字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
- 2005. Lovely Number
- Scrum在游戏开发实践中的若干问题
- JSP 9 大内置对象详解
- 设计模式之责任链模式
- 观察者模式
- Command line option syntax error.Type Command /? for help.错误解决方法
- 微信功能版(可用于电脑、安卓手机端)微信电脑版 使用说明
- HDU 4514 湫湫系列故事——设计风景线