黑马程序员_java IO流
2015-07-09 22:08
555 查看
------- android培训、java培训、期待与您交流!
----------
1.IO流:
IO流用来处理设备之间的数据传输
Java对数据的操作时通过流的方式
Java用于操作流的对象都在IO包中
流按操作数据分为两种,字节流与字符流
流按流向分为:输入流,输出流
2.IO流常用基类
2.1字节流的抽象基类
InputStream OutputStream
2.2字符流的抽象基类
Reader Writer
注::由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream的子类FileputStream、Reader的子类FIleReader
[java] view
plaincopy
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();
}
}
3.复制文件:
复制的原理:其实就是将一个盘下的文件数据存储到另一个盘中的一个文件中。
步骤:
3.1在盘中创建一个文件,用于存储盘中的文件中的数据
3.2定义读取流和盘中的文件关联
3.3通过不断的读写完成数据存储。
[java] view
plaincopy
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
{
//创建目的地。
FileWriter 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();
}
}
4.字符流的缓冲区
缓冲区的出现提高了对数据的读写效率
对应类:bufferedWriter BufferedReader
缓冲区要结合流才可以使用
在流的基础上对流的功能进行了增强。
[java] view
plaincopy
/*
字符读取流缓冲区:
该缓冲区提供了一个一次读一行的方法 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();
}
}
----------
1.IO流:
IO流用来处理设备之间的数据传输
Java对数据的操作时通过流的方式
Java用于操作流的对象都在IO包中
流按操作数据分为两种,字节流与字符流
流按流向分为:输入流,输出流
2.IO流常用基类
2.1字节流的抽象基类
InputStream OutputStream
2.2字符流的抽象基类
Reader Writer
注::由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream的子类FileputStream、Reader的子类FIleReader
[java] view
plaincopy
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();
}
}
3.复制文件:
复制的原理:其实就是将一个盘下的文件数据存储到另一个盘中的一个文件中。
步骤:
3.1在盘中创建一个文件,用于存储盘中的文件中的数据
3.2定义读取流和盘中的文件关联
3.3通过不断的读写完成数据存储。
[java] view
plaincopy
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
{
//创建目的地。
FileWriter 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();
}
}
4.字符流的缓冲区
缓冲区的出现提高了对数据的读写效率
对应类:bufferedWriter BufferedReader
缓冲区要结合流才可以使用
在流的基础上对流的功能进行了增强。
[java] view
plaincopy
/*
字符读取流缓冲区:
该缓冲区提供了一个一次读一行的方法 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();
}
}
相关文章推荐
- 黑马程序员_java 基本语句的理解
- 黑马程序员_java 面向对象的理解
- 黑马程序员_java集合概述
- leetoj two sum
- 史上最全的程序员求职渠道总结
- 黑马程序员——集合
- java面试题集锦
- 一道简单的阶层面试题
- 面试题26 复杂链表的复制
- 【剑指offer 面试题34】丑数
- 面试题精选
- mianshi_experience
- 对程序员非常重要的20个软技能
- 黑马程序员 面向对象 static main
- 博士生之“初次面试”
- 《C程序员:从校园到职场》出版预告(5):一种情怀,几分感悟
- 黑马程序员----牛叉的集合之List
- 黑马程序员——Java 面向对象(上)
- 浅谈Android移动开发程序员的职业发展之路
- (剑指Offer)面试题12:打印1到最大的n位数