---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
一、IO概述
1、划分
按操作数据分为:字节流和字符流:字节流基于字符流。
按流的方向分为:输入流,输出流。
2、IO常用基类:
字节流的抽象类:InputStream、OutPutStream
字符流的抽象类:Reader、Writer
《注意》:由这四个类派生出来的子类名称都是以其父类名作为子类的名的后缀。
3、IO异常处理方式
import java.io.*;
class FileWriterDemo2
{
public static void main(String[] args)
{
FileWriter fw = null;
try
{
fw = new FileWriter("demo.txt");
fw.write("abcdefg");
}
catch (IOException e)
{
System.out.println("catch:"+e.toString());
}
finally
{
try
{
if(fw!=null)
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}
4、文件的续写
/*
演示对已有文件的数据续写。
*/
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");
fw.close();
}
}
5.IO流文本文件读取方式
import java.io.*;
class FileReaderDemo
{
public static void main(String[] args) throws IOException
{
//创建一个文件读取流对象,和指定名称的文件相关联。
//要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException
FileReader fr = new FileReader("demo.txt");
//调用读取流对象的read方法。
//read():一次读一个字符。而且会自动往下读。
int ch = 0;
while((ch=fr.read())!=-1)//读取方式1
{
System.out.println(
}
/*
while(true)//读取方式2
{
int ch = fr.read();
if(ch==-1)
break;
System.out.println("ch="+(char)ch);
}
*/
fr.close();
}
}
6、拷贝文本文件
将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();
}
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) { }
}
} //第二种从C盘读一个字符,就往D盘写一个字符。
public static void copy_1()throws IOException {
//创建目的地。 F
ileWriter fw = new FileWriter("RuntimeDemo_copy.txt"); //与已有文件关联。
FileReader fr = new FileReader("RuntimeDemo.java");
int ch = 0;
while((ch=fr.read())!=-1) {
fw.write(ch);
}
fw.close();
fr.close();
}
}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net