黑马程序员---JAVA基础---IO(十一)

本文主要介绍了JAVA中的IO流,包括字节流和字符流的划分、常用基类如InputStream、OutputStream、Reader和Writer,以及IO异常处理、文件续写、文本文件读取和拷贝文件的基本步骤。
摘要由CSDN通过智能技术生成

---------------------- 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 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值