字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
2013-03-23 01:32
435 查看
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
【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】流 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异常处理、文件续写、文件读取、文件拷贝及练习
- Java基础——IO(拷贝文件+字节流-字符流缓冲区(装饰设计)-转换流-IO操作规律-异常日志-系统信息列表输出)
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
- IO 字符流 FileWriter IO异常的处理 字符数据续写 FileReader 复制原理:
- 【18下】IO流1_FileWriter,IO异常处理,文本读取和拷贝
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
- (82)IO概述、字符流写入、异常处理、续写、两种读取方式、读写练习
- 黑马程序员——7.1.IO(其他对象API(System类、Runtime类、Math类、Date类)字节流与字符流、IO异常处理、缓冲区、键盘录入、转换流、异常日志、流的操作总结)
- 拷贝文件以及文件异常处理
- 151_IO_字符流_纯文本_节点流_Reader_FileReader_Writer_FileWriter_读取_写出_拷贝
- 读文件Io异常的处理
- java IO流(字节流与字符流对文件的处理)
- 用poi处理excel文件异常:java.io.IOException: Invalid header signature; read 2338042707334752323
- 黑马程序员---2015.6.25java基础笔记---装饰模式--字节流拷贝图片--字节流缓冲--字节字符转化--File类
- 字符流FileWriter,FileReader、缓冲区,BufferReader,BufferWriter,IO的简单异常处理
- Java IO学习【3】IO中异常的抛出/单个字符读取文件、数组读取字符文件
- 7.Strut国际化动态文本(声明式处理异常):资源文件
- java向文件中写入内容,字节流,字符流,缓冲,复制文件,设置字符编码 实例
- java IO 字节流、字节流读写文件、字节流缓冲区、文件拷贝、装饰设计模式