File类--输入流和输出流

创建文件对象:可以是物理文件或目录,操作文件或目录的属性(路径、权限、日期和时间等)

通过流来读写文件,流是一组有序的数据序列,以先进先出方式发送信息的通道

很多的信息,都是通过文件来读取的,文件是数据源

对于程序来说,把文件读入到程序中,这是输入,把资料读出去是是输出。

在Java中流的分类:

按流向区分:        1、输出流---->OutputStream和Writer作为基类

              2、输入流---->InputputStream和Reader作为基类                    输入输出流是相对于计算机内存来说的

按照处理数据单元划分:    1、字节流---->字节输入流InputputStream  字节输出流OutputStream这两个作为基类  字节流是8位通过字节流,字符流是16位Unicode字符流

               2、字符流---->字符输入流Reader       字符输出流Writer这两个作为基类 

通常使用按处理数据单元划分的多一点。

字节流:  InputStream

            read()            从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果到了输入流的末尾,返回-1

            read(byte[ ] a)         从输入流读取若干字节,把这些字节保存到数组a中,返回的是读取到字节数,如果到了输入流的末尾,返回-1

            read(byte[ ] a,int off,int len)    从输入流读取若干字节,把这些字节保存到数组a中,off指的是字节数组中开始保存数据的起始下标,len指读取的字节数                                                                                                     目。返回的是读取到的字节数,如果到了输入流的末尾,返回-1

            close()

            available()  可以从输入流中读取的字节数目

      FileInputStream(子类FileInputStream常用的构造方法)

            new FileInputStream(File file)    这是一个文件类

            new FileInputStream(String path)   这是路径

      OutputStream

            write(int a)

            write(byte [ ] a)

            write(byte [ ] a,int off ,int len)

            close()

            flush()              强制将缓冲区清空

      FileOutputStream

            new FileOutputStream(File file)

            new FileOutputStream(String path)

            new FileOutputStream(String path,boolean append)可以指定覆盖或追加文件内容

       Reader

            read()            从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果到了输入流的末尾,返回-1

            read(byte[ ] a)         从输入流读取若干字节,把这些字节保存到数组a中,返回的是读取到字节数,如果到了输入流的末尾,返回-1

            read(byte[ ] a,int off,int len)    从输入流读取若干字节,把这些字节保存到数组a中,off指的是字节数组中开始保存数据的起始下标,len指读取的字节数                                                                                                     目。返回的是读取到的字节数,如果到了输入流的末尾,返回-1

            close()

       InputStreamReader

            new InputStreamReader(InputStream in)

            new InputStreamReader(InputStream in, String charsetName)

      FileInputStreamReader(是InputStreamReader的子类,该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型)

            new FileReader(File file)

            new FileReader(String name)

System.getProperty("file.encoding");获得本地平台的字符编码类型

        Writer

            writer(String str)        将str字符串里包含的字符输出到指定的输出流中

            writer(String str,int off,int len)   将str字符串里从off位置开始,长度为len的多个字符输出到输出流中

            close()

            flush()            刷新输出流

       

使用io的步骤:

  1、引入相关的类

  2、构造文件输入流或输出流或字符输入流或字符输出流

  3、读取或写出文本文件的数据

  4、关闭流对象

案例:

import java.io.File;

import java.io.IOException;

public class TestClass {

   /**

  * 创建一个文件或者目录

  * @param file

   */

  public void creatFile(File file){

    if(file.exists()){//判断文件或目录是否存在,存在为true

      System.out.println("此文件已存在!");

    }else{

      try {

         file.createNewFile();//创建文件

        System.out.println("文件创建成功!");

      } catch (IOException e) {

        e.printStackTrace();

       }

    }

   }

  /**

  * 获得文件的信息

  * @param file

  */

  public void getFileInfo(File file){

    if(file.exists()){//先判断是否有此文件或者目录

       if(file.isFile()){//判断是否是文件

         //获得文件的绝对路径

        String string=file.getPath();//相对路径

        String a=file.getAbsolutePath();//绝对路径

        String name=file.getName();//获得文件名

        System.out.println("相对路径:\t"+string);

        System.out.println("绝对路径:\t"+a);

        System.out.println("文件名为:"+name);

        System.out.println("文件大小为:"+file.length());

     }

      if(file.isDirectory()){//判断是否是目录

        System.out.println("此文件是目录");

      }

    }else {

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

    }

  }

  /**

  * 删除文件

  * @param file

  */

  public void del(File file){

    if(file.exists()){//先要判断是否有此文件才可以进行删除工作

      file.delete();

      System.out.println("删除文件成功!");

    }else{

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

    }

  }

}

public static void main(String[] args) {
    //要去判断是否有这个文件或者目录,如果没有,那么就去创建一个文件
    TestClass testClass=new TestClass();
    File file=new File("E:/刘楠梅/text.txt");//这里是要创建的文件
  //  testClass.creatFile(file);//通过调用方法去检查是否有该文件或目录,没有就创建
  //  testClass.getFileInfo(file);
    testClass.del(file);
 }

原文地址:https://www.cnblogs.com/shmilynanmei/p/8883621.html

时间: 2024-11-04 12:46:53

File类--输入流和输出流的相关文章

File类和输入输出流体系基础

参考: https://www.jianshu.com/p/7e84ef94f0c1 李刚<Java疯狂讲义> File类 File类是java.io包下代表与平台无关的文件和目录,如果希望在程序中操作文件和目录,都可以通过File类来完成.不管是文件还是目录都是使用File来操作的,File能新建.删除.重命名文件和目录,但是File类不能访问文件内容本身,如果需要访问文件内容本身,则需要使用输入/输出流. 构造一个File类实例 File类的常见构造方法:new File(String p

Java的File类浅析

File类,输入输出流基本上是离不开File类的. File类里面常用的构造方法 File(String pathname) File(File parent, String child) File(String parent, String child) File(URI uri) 常用实例方法 canRead() canWrite() canExecute() delete() getAbsolutePath() getName() getParent() isFile() isDirect

File类的基本操作之InputStream字节输入流

话不多少,我直接把代码贴上来了.有什么问题请给我留言 package org.mark.streamRW; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; /** * 字节输出流:OutputStream,整个IO包中字节输出流的最大父类 * 字节输入流:InputStream * * InputStream使用子类FileInputStream.读取 */ public class

File 类 输出流

1 File 类 ? 1.1 概述 java.io.File 是文件和目录路径名的表示 主要用于文件和目录的创建 查找 删除等操作 ? 1.2 构造方法 ? **File**(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例. **File**(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例. **File**(String parent, String

File类基本操作之OutputStream字节输出流

贴代码了,已经測试,可正常编译 package org.mark.streamRW; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; /** * 字节流输出OutputStream * 注意:1,write(byte[] b)数组方法写入: * * @author Mark */ public class OutputStream1 { /** * @param args */

黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或文件夹封装成对象 (2)方便于对“文件”与“文件夹属性信息”进行操作 (3)File对象,可以作为参数传递给流的构造函数 (二)构造方法 * 通过File的构造函数创建File对象 方式1:File f = new File("c:\\a.txt"); 方式2:File f2 = newF

File类与字节流

1.File类 1.1:表达式:File f = new File("文件路径") 1.2:需导入的包: java.io.File  1.3:File表示文件或文件夹(目录),不能操作文件类容,只能操作文件的属性 1.4:File常用的方法: boolean flag = f.exists(); //文件是否存在 flag = f.isFile(); //是否是文件 flag = f.isDirextory(); //是否是目录 str = f.getPath(); //获得文件的相对

文件操作(File类等)API摘要

Console 此类包含多个方法,可访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有). 虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式.如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示.如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台. 如果此虚拟机具有控制台,那么它将由此类唯一的实例(可通过调用 System.console() 方法获得)表示.如果没有可

day20 文件输入流和输出流FileInputStream FileOutputStream

1.概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流. 流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字符流 : 字符流只能操作纯字符数据,比较方便. 2.IO流常用父类 字节流的抽象父类: InputStream OutputStream 字符流的抽象父类: Reader Writer IO流(FileInputStream)read()一