zoukankan      html  css  js  c++  java
  • 六,IO系统

    六,IO系统

    一,数据源

    1,数据源--管道确认使用那根管道--节点流

    2,先确定管道在tey中new出管道,new出后就写关闭代码,写完关闭代码在写中间代码

    3,取数据和放数据结束语句必须有两个,不能写在一个try中

    4,fout.flush();//冲刷,用来强制执行完后才能执行下一步

    5,对象的序列化和反序列化;

    1,将输入的二进制对象流转换为对象(不管从哪来)

    2,把对象以二进制流的形式输出(不管输出到哪)

    3,transient();修饰的属性值不参与序列化

    二,字节流(byte)二进制数据,我们看不懂,什么数据都可以传,包括字符流

    1,字节输入流;(inputstream),字节输出流;(outputstream)

    例;

    FileInputStream fin = null;

    FileOutputStream fout = null;

    try {

    fin = new FileInputStream("D:/lileihanmeimei.mp3");

    fout = new FileOutputStream("F:/my.mp3");

    byte[] b = new byte[1024];

    int length = 0;

    while((length = fin.read(b)) != -1){

    fout.write(b,0,length);

    fout.flush();//冲刷

    }

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    if(fin != null){

    try {

    fin.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    if(fout != null){

    try {

    fout.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    2,对象反序列化:(ObjectOutputStream)将输入的二进制对象流转换为对象

    例;

    StudentBean stu = new StudentBean("小白", 25);

    stu.setHomeAddress(new AddressBean("中国", "四川", "绵阳"));

    ObjectOutputStream oos = null;

    try {

    oos = new ObjectOutputStream(new FileOutputStream("stu.data"));

    oos.writeObject(stu);

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    if(oos != null){

    try {

    oos.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    3,对象序列化(ObjectInputStream)---把对象以二进制流的形式输出

    例;

    StudentBean stu = null;

    ObjectInputStream ois = null;

    try {

    ois = new ObjectInputStream(new FileInputStream("stu.data"));

    stu = (StudentBean)ois.readObject();

    stu.study();

    System.out.println(stu.getAge());

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } catch (ClassNotFoundException e) {

    e.printStackTrace();

    } finally{

    if(ois != null){

    try {

    ois.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    三,字符流(char)文本数据,我们看得懂的,只能传字符流

    1,字符输入流(reader)

    例;

    String poem = "";

    FileReader fr = null;

    try {

    fr = new FileReader("poem.txt");

    int c = 0;

    while((c = fr.read()) != -1){

    poem += (char)c;//取字符

    }

    System.out.println(poem);

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    if(fr != null){

    try {

    fr.close();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    2,字符输出流(writer)

    例;

    String poem = "床前明月光,地上疑似霜。";

    1、确定管道

    FileWriter fw = null;

    try {

    fw = new FileWriter("poem.txt");

    2、操作管道

    fw.write(poem);//放字符

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    3、关闭管道

    if(fw != null){

    try {

    fw.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    四,file来自io包是Java中专门用于封装表示文件/文件夹的类型

    File是Java中专门用来封装表示文件/文件夹的类型

    1,File表示文件

    File file = new File("F:/my.mp3");

    ile file1 = new File("F:/hello.txt");

    File file2 = new File("D:/world.txt");

    System.out.println(file.getName());

    System.out.println(file.getPath());

    System.out.println(file.getParent());

    System.out.println(file.length());

    System.out.println(new Date(file.lastModified()));

    try {

    if(!file1.exists()){

    file1.createNewFile();

    }else{

    file1.renameTo(file2);

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    System.out.println(file1.canWrite());

    System.out.println(file1.isHidden());

    2,File表示文件夹

    File dir = new File("D:/tools");

    if(dir.isDirectory()){

    String[] subStrs = dir.list();

    for(String sub : subStrs){

    System.out.println(sub);

    }

    File[] subFiles = dir.listFiles();

    for(File sub : subFiles){

    if(sub.isHidden()){

    System.out.println(sub.getName());

    }

    }

    }

    六,IO系统

    一,数据源

    1,数据源--管道确认使用那根管道--节点流

    2,先确定管道在tey中new出管道,new出后就写关闭代码,写完关闭代码在写中间代码

    3,取数据和放数据结束语句必须有两个,不能写在一个try中

    4,fout.flush();//冲刷,用来强制执行完后才能执行下一步

    5,对象的序列化和反序列化;

    1,将输入的二进制对象流转换为对象(不管从哪来)

    2,把对象以二进制流的形式输出(不管输出到哪)

    3,transient();修饰的属性值不参与序列化

    二,字节流(byte)二进制数据,我们看不懂,什么数据都可以传,包括字符流

    1,字节输入流;(inputstream),字节输出流;(outputstream)

    例;

    FileInputStream fin = null;

    FileOutputStream fout = null;

    try {

    fin = new FileInputStream("D:/lileihanmeimei.mp3");

    fout = new FileOutputStream("F:/my.mp3");

    byte[] b = new byte[1024];

    int length = 0;

    while((length = fin.read(b)) != -1){

    fout.write(b,0,length);

    fout.flush();//冲刷

    }

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    if(fin != null){

    try {

    fin.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    if(fout != null){

    try {

    fout.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    2,对象反序列化:(ObjectOutputStream)将输入的二进制对象流转换为对象

    例;

    StudentBean stu = new StudentBean("小白", 25);

    stu.setHomeAddress(new AddressBean("中国", "四川", "绵阳"));

    ObjectOutputStream oos = null;

    try {

    oos = new ObjectOutputStream(new FileOutputStream("stu.data"));

    oos.writeObject(stu);

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    if(oos != null){

    try {

    oos.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    3,对象序列化(ObjectInputStream)---把对象以二进制流的形式输出

    例;

    StudentBean stu = null;

    ObjectInputStream ois = null;

    try {

    ois = new ObjectInputStream(new FileInputStream("stu.data"));

    stu = (StudentBean)ois.readObject();

    stu.study();

    System.out.println(stu.getAge());

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } catch (ClassNotFoundException e) {

    e.printStackTrace();

    } finally{

    if(ois != null){

    try {

    ois.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    三,字符流(char)文本数据,我们看得懂的,只能传字符流

    1,字符输入流(reader)

    例;

    String poem = "";

    FileReader fr = null;

    try {

    fr = new FileReader("poem.txt");

    int c = 0;

    while((c = fr.read()) != -1){

    poem += (char)c;//取字符

    }

    System.out.println(poem);

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    if(fr != null){

    try {

    fr.close();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    2,字符输出流(writer)

    例;

    String poem = "床前明月光,地上疑似霜。";

    1、确定管道

    FileWriter fw = null;

    try {

    fw = new FileWriter("poem.txt");

    2、操作管道

    fw.write(poem);//放字符

    } catch (IOException e) {

    e.printStackTrace();

    } finally{

    3、关闭管道

    if(fw != null){

    try {

    fw.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    四,file来自io包是Java中专门用于封装表示文件/文件夹的类型

    File是Java中专门用来封装表示文件/文件夹的类型

    1,File表示文件

    File file = new File("F:/my.mp3");

    ile file1 = new File("F:/hello.txt");

    File file2 = new File("D:/world.txt");

    System.out.println(file.getName());

    System.out.println(file.getPath());

    System.out.println(file.getParent());

    System.out.println(file.length());

    System.out.println(new Date(file.lastModified()));

    try {

    if(!file1.exists()){

    file1.createNewFile();

    }else{

    file1.renameTo(file2);

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    System.out.println(file1.canWrite());

    System.out.println(file1.isHidden());

    2,File表示文件夹

    File dir = new File("D:/tools");

    if(dir.isDirectory()){

    String[] subStrs = dir.list();

    for(String sub : subStrs){

    System.out.println(sub);

    }

    File[] subFiles = dir.listFiles();

    for(File sub : subFiles){

    if(sub.isHidden()){

    System.out.println(sub.getName());

    }

    }

    }

     

  • 相关阅读:
    扫雷游戏
    打地鼠Demo
    Game2048
    蛇形矩阵
    约瑟夫环
    二分法查找
    动态规划之防卫导弹
    动态规划之0-1背包问题
    回溯算法之火力网
    回溯算法之8皇后问题
  • 原文地址:https://www.cnblogs.com/zpcbk/p/6487091.html
Copyright © 2011-2022 走看看