黑马程序员 java基础之IO流(一)
2013-05-14 20:44
225 查看
使用IO流的规律:
1、首先知道IO流的体系,分为输入和输出流,输入流:InputStream,Reader.输出流:OutputStream,Writer
2、明确源和目的,源 需要用到InputStream或者Reader;
目的需要用到OutputSteam或者Writer;
3、明确具体文件类型:如果是文本文件,用字符流Reader/Writer;
如果是非文本文件,如图片,视频等,用字节流InputStream/OutputStream;
4、通过设备确定用哪个具体对象:源分为:内存,硬盘,键盘。
目的分为:内存,硬盘,控制台。
5、是否需要提高效率:BufferedReader/Writer
练习一:读取一个.java文件,打印出来
class IOStream{
public static void main(String [] args){
FileReader fr = null;
try{
fr = new FileReader("area.java");
char [] ch = new char[1024];
int num = 0;
while((num = fr.read(ch))!=-1){
System.out.print("area.java:" + new String(ch,0,num));
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
try{
fr.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
练习二:将一个c盘的文件复制到d盘
class IOStream{
public static void main(String [] args){
FileWriter fw = null;
FileReader fr = null;
try{
fw = new FileWriter("D:\\area.java");
fr = new FileReader("area.java");
char [] ch = new char[1024];
int num = 0;
while((num = fr.read(ch))!=-1){
fw.write(ch,0,num);
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
if(fr == null)
try{
fr.close();
}
catch(IOException e){
System.out.println(e.toString());
}
if(fw == null)
try{
fw.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
练习三:练习二的改进版,利用缓冲区复制文本
class IOStream{
public static void main(String [] args){
BufferedReader br = null;
BufferedWriter bw = null;
try{
br = new BufferedReader(new FileReader("area.java"));
bw = new BufferedWriter(new FileWriter("D:\\area.java"));
String s = null;
while((s = br.readLine())!=null){
bw.write(s);
bw.newLine();
bw.flush();
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
if(bw==null)
try{
bw.close();
}
catch(IOException e){
System.out.println(e.toString());
}
if(br==null)
try{
br.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
练习四:拷贝一张图片
class IOStream{
public static void main(String [] args){
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("34.jpg");
fos = new FileOutputStream("D:\\background.jpg");
byte [] bt = new byte[1024];
int num = 0;
while((num = fis.read(bt))!=-1){
fos.write(bt);
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
if(fis==null)
try{
fis.close();
}
catch(IOException e){
System.out.println(e.toString());
}
if(fos==null)
try{
fos.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
1、首先知道IO流的体系,分为输入和输出流,输入流:InputStream,Reader.输出流:OutputStream,Writer
2、明确源和目的,源 需要用到InputStream或者Reader;
目的需要用到OutputSteam或者Writer;
3、明确具体文件类型:如果是文本文件,用字符流Reader/Writer;
如果是非文本文件,如图片,视频等,用字节流InputStream/OutputStream;
4、通过设备确定用哪个具体对象:源分为:内存,硬盘,键盘。
目的分为:内存,硬盘,控制台。
5、是否需要提高效率:BufferedReader/Writer
练习一:读取一个.java文件,打印出来
class IOStream{
public static void main(String [] args){
FileReader fr = null;
try{
fr = new FileReader("area.java");
char [] ch = new char[1024];
int num = 0;
while((num = fr.read(ch))!=-1){
System.out.print("area.java:" + new String(ch,0,num));
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
try{
fr.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
练习二:将一个c盘的文件复制到d盘
class IOStream{
public static void main(String [] args){
FileWriter fw = null;
FileReader fr = null;
try{
fw = new FileWriter("D:\\area.java");
fr = new FileReader("area.java");
char [] ch = new char[1024];
int num = 0;
while((num = fr.read(ch))!=-1){
fw.write(ch,0,num);
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
if(fr == null)
try{
fr.close();
}
catch(IOException e){
System.out.println(e.toString());
}
if(fw == null)
try{
fw.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
练习三:练习二的改进版,利用缓冲区复制文本
class IOStream{
public static void main(String [] args){
BufferedReader br = null;
BufferedWriter bw = null;
try{
br = new BufferedReader(new FileReader("area.java"));
bw = new BufferedWriter(new FileWriter("D:\\area.java"));
String s = null;
while((s = br.readLine())!=null){
bw.write(s);
bw.newLine();
bw.flush();
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
if(bw==null)
try{
bw.close();
}
catch(IOException e){
System.out.println(e.toString());
}
if(br==null)
try{
br.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
练习四:拷贝一张图片
class IOStream{
public static void main(String [] args){
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("34.jpg");
fos = new FileOutputStream("D:\\background.jpg");
byte [] bt = new byte[1024];
int num = 0;
while((num = fis.read(bt))!=-1){
fos.write(bt);
}
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
if(fis==null)
try{
fis.close();
}
catch(IOException e){
System.out.println(e.toString());
}
if(fos==null)
try{
fos.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
相关文章推荐
- 黑马程序员---Java基础--19天(IO流之二)
- 黑马程序员-Java语言基础– IO流 第18天
- 黑马程序员——java基础拾遗之IO流(一) 常用类及方法
- 黑马程序员---Java基础---IO流(三)
- 黑马程序员_Java基础_IO流(File类和properties类相关操作)
- 黑马程序员-Java基础总结11——IO流(二)
- 黑马程序员-6-java-IO流开篇基础API
- 黑马程序员之——Java基础 IO流——第三部分
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员--Java基础--IO流(二)
- 黑马程序员-Java语言基础– IO流 第19天
- 黑马程序员——Java基础------IO流之字符流、字节流和缓冲区。
- 黑马程序员-JAVA基础学习日记八——IO流的学习总结
- 黑马程序员-Java基础总结10——IO流体系(一)
- 黑马程序员——Java基础——IO流笔记(SequenceInputStream使用示例)
- 黑马程序员——JAVA基础------IO流(三)----字符流
- 黑马程序员——java基础知识之IO流(三)
- 黑马程序员——Java基础---IO流
- 黑马程序员——高新技术---Java基础-IO流