为黑马奋斗的日子--io流

 


---------------------- android培训java培训、期待与您交流! ----------------------

javaIO流:
          java流分为两种流:1.字节流可以用于读写2进制文件以及任何类型的文件(InputStream,OutputStream)
                            2.可以用于对读写文件文本文件 但不能操作二进制文件(Reader,Writer)
          代码:
          **
 * 功能:使用FlieInputStream(读取内存上的数据)
 *       输入流(字节流)
 * 作者:白潇
 */
package com.text5;
import java.io.*;
public class Text3 {
 
 public static void main(String args[]){
   //得到一个文件对象 对它进行操控
         File f=new File("d:\\synchronized.txt");
         FileInputStream fil=null;
         try {
          //因为File没有读写的能力 所有要用到FileInputStream
   fil=new FileInputStream(f);
   //定义一个字节数组 相当是一个缓存
   byte arr[]=new byte[1024];
   //得到实际得出的字节数
   int n=0;
   //循环读取
     
   while((n=fil.read(arr))!=-1){
    //把字节转化成 String
    String s=new String(arr,0,n);
    System.out.println(s);
   }
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   //运行完关闭文件流
    try {
    fil.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }    
 }
}
 /**
 * 功能:FileOutputStream使用(将数据写入内存)
 *       输出流(字节流)
 * 作者:白潇     
 */
package com.text5;
import java.io.*;
import java.util.*;
public class Text4 {

  public static void main(String args[]){
   File f=new File("d:\\synchronized.txt");
   Scanner scanner=new Scanner(System.in);
   FileOutputStream fil=null;
    try {
   fil=new FileOutputStream(f);
    System.out.println("请输入您要添加的数据");
     String s1=scanner.next();
     fil.write(s1.getBytes());
    fil.write(s1.getBytes());
  } catch (Exception e) {
   e.printStackTrace();
  }finally{
   //关闭文件流
   try {
    fil.close();
   } catch (IOException e) {
    e.printStackTrace();
   } } }}
/**
 * 功能:用字节流来对文件控制
 * 作者:白潇
 */
package com.text5;
import java.io.*;
import java.util.*;
public class Text6 {
 
    public static void main(String args[]){
     File f=new File("D:\\synchronized.txt");
     //定义一个字节输入流
     FileReader fi=null;
     //定义一个字节输出流
     FileWriter ft=null;
     try {
   fi=new FileReader(f);
   ft=new FileWriter("f:\\sychronized.txt");
   char arr[]=new char[1024];
   int n=0;
   while((n=fi.read(arr))!=-1){
    ft.write(arr);
   }
  } catch (Exception e) { 
   e.printStackTrace();
  }finally{
       try {
    fi.close();
     ft.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
     
  }         }
 
}

为了提高效率java有一种缓冲字符流
                   输入流:BufferedReader, 输出流:BufferedWriter
         注意要使用缓冲字符流时要先声明字符流
  代码:
  /**
 * 功能:用BufferedReader(字符输入流)和BufferedWriter(字符输出流)
 * 作者:白潇
 */
package com.text5;
import java.io.*;
import java.util.*;
public class Text7 {
 
 public static void main(String args[]) {
      BufferedReader br=null;
      BufferedWriter bw=null;
          try {
   FileReader fil=new FileReader("d:\\Text.txt");
    br=new BufferedReader(fil);
   FileWriter fri=new FileWriter("e:\\Text.txt");
         bw=new BufferedWriter(fri);
   String s="";
   while((s=br.readLine())!=null){
    //因为BufferedReader不会返回换行符所以要加\t\n来换行
    bw.write(s+"\r\n");
   }
  } catch (Exception e) {
   
   e.printStackTrace();
  }finally{
    try {
    br.close();
    bw.close();
   } catch (IOException e) {
    
    e.printStackTrace();
   }
  }   
  }
}
                                          

 

 

 

---------------------- android培训java培训、期待与您交流! ---------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值