zoukankan      html  css  js  c++  java
  • IO读写方案

    第一套:字节流读取写入方案

    FileInputStream :字节流方式读取文本文件

    FileOutputStream:字节流写入硬盘

    第二套:字符流读取写入方案

    FileReader:字符流读取文本

    FileWriter:字符流写入文本

    第三套:

    BufferedReader:自定义缓存大小,读取文本 8192char

    BufferedWriter:写入文本

    一般和FileReaderFileWriter结合使用

    第四套:可以读取二进制(img图片等 )

    DataInputStream:将本地的img加载到内存中

    DataOutputStream::将内存中的二进制数据写入到硬盘上的某个文件中。

    2.使用字节流读取文本文件

     //字节输入流练习:从文本文件读取各种数据(字母,字符串都支持)

       //声明流对象

    try {

    FileInputStream fis=new FileInputStream("c:\ming.txt");

    int data;

    System.out.println("可读取的字节数:"+fis.available());

    System.out.println("文件内容为:");

    //循环读取数据

    byte[] buffer=new byte[1024];

    StringBuilder sb=new StringBuilder();

    while ((data=fis.read(buffer))!=-1) {

    //byte[]转为字符串

    String str=new String(buffer,0,data,"gb2312");

    sb.append(str);

    }

    System.out.println(sb.toString());

    } catch (Exception e) {

    }

    3.使用字节流写文本文件

     // 通过字节流将内存中的数据写入到硬盘上

    FileOutputStream fos=null;

    try {

    String str="你是人间的四月天";

    byte[] words=str.getBytes("gb2312");

    //创建流对象,一追加方式写入文件

    fos=new FileOutputStream("c:\ming.txt",true);

    //写入文件

    fos.write(words,0,words.length);

    System.out.println("文件已更新");

    } catch (Exception e) {

    System.out.println("创建文件时出错!");

    }finally{

    try {

    if (fos!=null) {

    fos.close();

    }

    } catch (Exception e2) {

       e2.printStackTrace();

    }

    }

    4.使用字符流读取文本文件

    //使用字符流读取文本文件

    Reader fr=null;

    try {

     fr=new FileReader("c:\ming.txt");

    char[] ch=new char[1024];//中转站,缓冲区

    StringBuffer sbf=new StringBuffer();

    int length=fr.read(ch);//将字符读入数组

    //循环读取并追加字符

    while (length!=-1) {

    sbf.append(ch,0,length);

    length=fr.read(ch);

    }

    System.out.print(sbf);

    } catch (Exception e) {

       e.printStackTrace();

    }finally{

    try {

    if (fr!=null) {

    fr.close();

    }

    } catch (Exception e2) {

    // TODO: handle exception

    }

    }

    5.使用字符流写文本文件

    //使用字符流写文本文件

    FileWriter fw=null;

    try {

    fw=new FileWriter("c:\ming.txt",true);

    //写入信息

    String words="叶丽仪-上海滩";

    fw.write(words);

    fw.flush();

    System.out.println("写入成功");

    } catch (Exception e) {

    System.out.println("文件不存在");

    }finally{

    try {

    if (fw!=null) {

    fw.close();

    }

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

    6.// 字符输入流BufferedReader读取文件

    FileReader fr=null;

    BufferedReader br=null;

    try {

    //创建一个FileReader对象

    fr=new FileReader("c:\ming.txt");

    //创建一个BufferedReader对象

    br=new BufferedReader(fr);

    //读取一行数据

    String line=br.readLine();

    while (line!=null) {

    System.out.println(line);

    line=br.readLine();

    }

    } catch (Exception e) {

    e.printStackTrace();

    }finally{

    try {

    if (br!=null) {

    br.close();

    }if (fr!=null) {

    fr.close();

    }

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

    7.// 使用MyBufferedWriter来写入文本文件

    FileWriter fw=null;

    BufferedWriter bw=null;

    try {

    fw=new FileWriter("c:\ming.txt",true);

    bw=new BufferedWriter(fw);

    //写入信息

    bw.write("故乡的原风景");

    bw.newLine();

    bw.write("城里的月光-许美静");

    bw.flush();

    fw.close();

    //读取文件内容

    FileReader fr=new FileReader("c:\ming.txt");

    BufferedReader br=new BufferedReader(fr);

    String line=br.readLine();

    while (line!=null) {

    System.out.println(line);

    line=br.readLine();

    }

    } catch (Exception e) {

    System.out.println("文件不存在");

    e.printStackTrace();

    }finally{

    try {

    if (bw!=null) {

    bw.close();

    }

    if (fw!=null) {

    fw.close();

    }

    } catch (Exception e2) {

    // TODO: handle exception

    }

    }

    8.// 使用字节流类DataOutputStream写二进制文件

    DataOutputStream out=null;

    DataInputStream dis=null;

    try {

    //创建输入流对象

    FileInputStream fis=new FileInputStream("c:\范宁.jpg");

    dis=new DataInputStream(fis);

    //创建输出流对象

    FileOutputStream outFile=new FileOutputStream("c:\范宁小美女33.jpg");

    out=new DataOutputStream(outFile);

    int temp=dis.read();

    while (temp!=-1) {

    out.write(temp);

    temp=dis.read();

    }

    System.out.println("复制成功");

    fis.close();

    outFile.close();

    } catch (Exception e) {

    System.out.println("文件不存在");

    }finally{

    try {

    if (dis!=null) {

    dis.close();

    }

    if (out!=null) {

    out.close();

    }

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

  • 相关阅读:
    [Web安全] XXE漏洞攻防学习(中)
    [Web安全] XXE漏洞攻防学习(上)
    [转]kali中eth0网卡突然消失解决方案
    [漏洞复现]CVE-2018-4887 Flash 0day
    [漏洞复现]CVE-2010-2883 Adobe Reader 打开pdf电脑即刻中招
    [漏洞复现] CVE-2017-11882 通杀所有Office版本
    墨菲定律:Mac本硬盘坏了
    独立思考
    阅读书单
    2020未来小思考
  • 原文地址:https://www.cnblogs.com/ruixinyu/p/5564433.html
Copyright © 2011-2022 走看看