精华内容
下载资源
问答
  • Java的文件(读写)输入输出1、流:它是通过缓冲机制将数据从生产者(如键盘、磁盘文件、内存或其他设备)传送到接受该数据消费者(如屏幕、文件或者内存)这一过程抽象。2、有关Java包:Java.io包中包括许多类...

    Java

    的文件(读

    写)输入输出

    1

    流:

    它是通过缓冲机制将数据从生产者(如键盘、磁盘文件、内存或其他设备)传送到接受

    该数据的消费者(如屏幕、文件或者内存等)的这一过程的抽象。

    2

    、有关的

    Java

    包:

    Java.io

    包中包括许多类提供许多有关文件的各个方面操作。

    3

    、有关文件名及目录名的类:

    File

    类独立于系统平台,利用构造函数

    File( String path)

    File(String path, String FileName)

    File(File

    dir,

    String

    name)

    建出

    File

    canRead()

    canWrite()

    getParent()

    getPath()

    等成员函数实现对文件的各个属性的操作。

    import java.io.*;

    public class FileTest

    { public static void main(String []args)

    {

    String FileName="C:\\temp\\myfile.dat"

    File myFile=new File(FileName);

    If( ! myFile. exists() )

    { System.err.println("Can't Find " + FileName);

    return;

    }

    System.out.println("File " + FileName + "is " +myFile.length() + "bytes Long !");

    If( myFile. isDirectory() )

    { System.err.println("File" + FileName +"Is a Directory !");

    return;

    }

    }

    }

    4

    、有关文件内容(数据)操作的类:

    4.1

    输入输出抽象基类

    InputStream/OutputStream

    ,实现文件内容操作的基本功能函

    read()

    write()

    close()

    skip()

    等;一般都是创建出其派生类对象(完成指定的特殊

    功能)来实现文件读写。在文件读写的编程过程中主要应该注意异常处理的技术。

    4.2 FileInputStream/FileOutputStream

    用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件

    流对象)

    本地文件读写编程的基本过程为:

    生成文件流对象(对文件读操作时应该为

    FileInputStream

    类,而文件写应该为

    FileOutputStream

    类)

    调用

    FileInputStream

    FileOutputStream

    类中的功能函数如

    read()

    write(int b)

    等)

    写文件内容;

    关闭文件(

    close()

    )

    4.3 PipedInputStream/PipedOutputStream

    用于管道输入输出

    (将一个程序或一个线程的输出结果直接连接到另一个程序或一个线

    展开全文
  • 文件的输入输出

    2018-04-12 22:11:05
    文件的分类: ASCII文件(文本文件 .txt)和二进制文件(音乐视频) 文件缓冲区: 从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。缓冲区的大小由各个具体的编译系统确定。 ...

    文件的分类:
    ASCII文件(文本文件 .txt)和二进制文件(音乐视频等)

    文件缓冲区:
    从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。缓冲区的大小由各个具体的编译系统确定。

    文件类型指针:
    每个被使用的文件都在内存中开辟一个相应的文件信息区,用来存放文件的有关信息。而这些信息保存在一个结构体变量中,名字为FILE。
    头文件stdio.h
    使用时直接使用使用即可,例如:FILE *fp;fp就是指向文件的指针。

    文件的打开与关闭:
    打开:fopen(文件路径,使用文件方式)

    FILE *fr = fopen("f:\\01.txt","r");
    //文件路径中\应该有两个
    assert(fr != NULL);//断言防止指向空

    r只读,文件不存在则出错
    w只写,文件不存在会建立新文件
    rb二进制,只读
    wb二进制,只写

    关闭:fclose(文件指针)

    fclose(fr);
    
    free(buffer);//最好在后面直接释放指针,并让其指向NULL,防止产生野指针。
    buffer = NULL;

    顺序读写文件:

    fgetc(fp)//从fp指向的文件读取一个字符,若失败则返回-1.
    fputc(ch,fp)//把字符ch写入fp指向的文件,失败返回-1.
    exit(0);//终止程序

    feof函数:可以检查文件读写位置标记是否移到末尾。

    fgets(str,n,fp);//从fp指向的文件读出一个长度为n-1的字符串,末尾会填有\0,
    //存放到字符数组str里。返回值地址是str首地址。
    fputs(str,fp);//把str所指向的字符串写入文件指针变量fp所指向的文件中。

    用格式化的方式读写文件:
    fprintf(文件指针,格式字符串,输出表列);
    fscanf(文件指针,格式字符串,输出表列);

    int i = 3;
    float f = 4.5;
    fprintf(fp,"%d,%6.2f",i,f);//将i和f按指定的格式输出到fp指向的文件中。
    //显示输出3,4.50
    fscanf(fp,"%d,%f",&i,&f);//从磁盘文件读取ASCII字符。

    这两个函数对磁盘文件读写,使用方便,容易理解。但在内存与磁盘频繁交换数据的情况下,最好不用这两个函数,而使用fread和fwrite函数进行二进制读写。

    用二进制方式向文件读写数据:

    fread(buffer,size,count,fp);//从fp指向的文件读取count个长度为size的数据,存储到buffer地址。
    fwrite(buffer,size,count,fp);//将buffer里的数据写入fp指向的文件里。

    随机读写数据文件:
    关键在于控制文件位置标记。

    文件位置标记定位:
    1)用rewind函数使文件位置标记指向文件开头
    2)用fseek函数改变文件位置标记
    fseek(文件指针,位移量,起始点)
    这里写图片描述
    3)用ftell函数测定文件位置标记的当前位置

    注:(该方法可以读取长度)
    fseek(fr,0,SEEK_END);//将指针指向文件的末尾
    long real_len = ftell(fr);//读取fr指向的长度

    文件读写检查:
    1)ferror函数:ferror(fp)
    返回值为0,表示没有出错;返回值非0,表示出错。

    注意:对同一个文件每一次调用输入输出函数,都会产生一个新的ferror函数值,所以应当在每个输入输出函数后立即检查ferror函数的值。

    2)clearerr函数:clearerr(fp)
    如果调用一个输入输出函数出错,ferror函数值为一个非零值,应立刻调用该函数,是ferror(fp)的值变为0,以便进行下一次的检测。

    展开全文
  • 文件输入输出流->带缓冲的输入输出流(过滤流)->基本数据的输入输出流 链接 这样好处是增强了文件输入输出功能  例如 我们只用文件流不能直接对文件写入 int char float 类型数据 但是我们吧这三个...
     /*
    流的链接 
    文件输入输出流->带缓冲的输入输出流(过滤流)->基本数据的输入输出流   链接
    这样的好处是增强了文件输入输出流的功能 
    例如 我们只用文件流不能直接对文件写入 int  char  float 等类型的数据 但是我们吧这三个流连接起来
    就增强了流的功能
    下面通过代码 实现
      FileOutputStream
      BufferedOutputStream
      DataOutputStream    链接对文件输出流进行写
     
     
      FileInputStream
      BufferedInputStream
      DataInputStream    链接对文件输入流进行写
     
     
     
    */
    import java.io.* ;
    class Test
    {
      public static void main(String []args)  throws Exception
     {
       //写文件
      /* FileOutputStream  fos =new  FileOutputStream("link.txt") ;
         BufferedOutputStream bos=new BufferedOutputStream(fos);
         DataOutputStream dis=new DataOutputStream(bos); 
         int a=1;
         char ch='c';
         float f=1.2f; 
       dis.writeInt(a) ;
       dis.writeFloat(f);
       dis.writeChar(ch) ;
       dis.close();//关闭基本数据输出力 
      */
        FileInputStream  fis=new FileInputStream("link.txt");
          BufferedInputStream bis=new BufferedInputStream(fis);
          DataInputStream dis=new DataInputStream(bis);  
        System.out.println(dis.readInt());
        System.out.println(dis.readFloat());
        System.out.println(dis.readChar());
        dis.close();
      
      
      
      
      
      
      
     }
     
     
     
     
     
    }
    展开全文
  • 文件输入输出的管理

    2018-09-26 23:48:29
    输入:用键盘,鼠标硬件在系统逐个录入字符 输出:系统接收到我们想要实现功能字符后,经过进程处理产生字符 注:输出会有两种结果,编号1为正确输出,编号2为错误输出输出结果会被系统默认定向到字符...

    1.输入输出的定义

    输入:用键盘,鼠标等硬件在系统逐个录入的字符 
    输出:系统接收到我们想要实现的功能字符后,经过进程的处理产生字符
    
    注:输出会有两种结果,编号1为正确输出,编号2为错误输出,输出结果会被系统默认定向到字符设备中
    

    2.管理输入

    (1)交互式录入

     举例:(改root用户密码)
    

    [root@desktop Desktop]# vim passwd.sh   # 编辑该密码的脚本文件
     #!/bin/bash
     passwd
    [root@desktop Desktop]# sh passwd.sh    # 该脚本需要手动运行
     Changing password for user root.
     New password: 
     BAD PASSWORD: The password is shorter than 8 characters
     Retype new password: 
     passwd: all authentication tokens updated successfully.
    

    (2)非交互式录入

     [root@desktop Desktop]# vim  C_pass.sh 
     #!/bin/bash 
     
     passwd <<END
     redhat 
     redhat 
     END
    

    在这里插入图片描述

     [root@desktop Desktop]# sh C_pass.sh        # 可以自动运行避免交互
     Changing password for user root.
     New password: BAD PASSWORD: The password is shorter than 8 characters
     Retype new password: passwd: all authentication tokens updated successfully.
    

    在这里插入图片描述

    3.管理输出

    (1)重定向

     >	              # 重定向正确输出 
     2>	              # 重定向错误输出 
     &>	              # 重定向所有输出 
     2>&1	          # 把错误输出的编号由2转换为1
    
    • 注:请用student用户做以下实验

    [root@desktop ~]# su - student
    [student@desktop ~]$ find /etc/ -name passwd  >    file.in   #显示错误信息,正确信息写入文件
    

    在这里插入图片描述

    [student@desktop ~]$ cat file.in
    

    在这里插入图片描述

    [student@desktop ~]$ find /etc/ -name passwd 2>    file.err  # 显示正确信息,错误信息录入文件
    

    在这里插入图片描述

    [student@desktop ~]$ cat file.err 
    

    在这里插入图片描述

    [student@desktop ~]$ find /etc/ -name passwd &>    file.all  # 所有信息录入文件
    [student@desktop ~]$ cat file.all 
    

    在这里插入图片描述

    [student@desktop ~]$ find /etc/ -name passwd >   file 2>&1  # 所有信息录入文件 
    [student@desktop ~]$ cat file
    

    在这里插入图片描述

    注:重定向是会覆盖原文件内容的
    [root@desktop Desktop]# vim file1
     hello world
    [root@desktop Desktop]# find /etc/ -name passwd  >  file1  # 用passwd里的东西覆盖file1的东西
    [root@desktop Desktop]# cat file1   # 原文件内容被passwd里的内容覆盖 
    

    在这里插入图片描述

    (2)追加(保持原文件内容不变的情况下把输出追加到文件之后)

     >>	           # 追加正确输出   
     2>>	       # 追加错误输出    
     &>>	       # 追加所有输出 
    

    [root@desktop Desktop]# vim file
    hello world
    [root@desktop Desktop]# find /etc/ -name passwd  >>  file
    [root@desktop Desktop]# cat file
    

    在这里插入图片描述

    [root@desktop Desktop]# find /etc -name passwd  2>>  file  # 追加错误信息的到file文件里
     /etc/passwd
     /etc/pam.d/passwd
    [root@desktop Desktop]# find /etc -name passwd  &>>  file  # 追加所有信息到file文件里
    [root@desktop Desktop]# cat westos      
    

    在这里插入图片描述
    (3)管道 ‘|’ (把输出变成下一个程序的输入,只有编号为1的输出可通过管道)

     使用方法:组合多条命令的使用 
    

    [root@desktop Desktop]# ls /bin | wc -l   # 统计/bin下有多少个目录,输出在终端上
     1614
    
     注:通过管道后输出会变成输入,但是无法保存在文件中的 
    
    • tee (复制输出到指定位置,即实现了把通过管道的文件保存起来)

     [root@desktop Desktop]# ls /bin | tee file | wc -l  #  把查看到的保存在file文件中
     1614
     [root@desktop Desktop]# cat file
    

    在这里插入图片描述

    展开全文
  • java基础io流的知识点。包括方法,File类,文件的输出输入。文件的读取,复制,粘贴代码和知识笔记。序列化及反序列化。二级制文件的读写。
  • 1.文件输入输出的定义 输入:我们通过使用硬件设备(鼠标、键盘)在系统中录入字符 输出:系统接收到功能字符后,经过进程处理而产生字符 输出分为: 正确输出 stdout (标准正确输出)标号为1 错误输出 ...
  • 文件和文件的输入输出

    千次阅读 2018-08-23 16:09:14
    2. 数据文件:文件的内容不是程序,而是供程序运行时读写的数据,包括在程序运行过程中输出到磁盘的数据和在程序运行过程中供读入的数据,如全班学生的成绩数据、货物交易的数据。 我们主要讨论的是数据文件,.....
  • C#文件输入输出编程

    2015-08-17 12:46:51
    C#文件输入输出例如设置文件的属性,只读,隐藏,还有创建有关文件资源类的源代码!
  • fgets和fputs类型的文件输入输出操作,在使用时你对象必须是数组类型数据才...而fwrite和fread类型的文件输入输出操作就更加是用些,不局限于数组类型数据,基本类型(如整型,浮点型数据都可以使用。...
  • linux文件的输入输出

    2015-10-14 14:56:30
    文件的输入输出 Linux函数:creat、open、close、read、write和lseek C语言:fopen、fclose、fread、fwrite、fseek 在编写跨平台程序时,最好使用C语言的标准库函数以方便移植,因为creat、open系统函数...
  • C# 之 文件的输入输出

    千次阅读 2018-05-02 22:12:41
    C# 文件的输入输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个 流。 从根本上说,流是通过通信路径传递的字节序列。有两个主要的流:输入流 和 输出...
  • 文件的输入输出

    2020-01-21 16:46:16
    这种文件的内容是可执行代码。 数据文件。如一批学生的成绩数据。 2. 打开与关闭文件 fopen函数打开数据文件,fclose函数关闭数据文件。 通常将fopen函数的返回值赋给一个指向文件的指针变量 FILE *fp ; /...
  • 文件打开后才可以对文件进行操作。也就是说,文件必须经历打开-操作-关闭的过程。...实际上对文件的处理过程就是对文件的输入输出过程。在前面已经介绍了C语言对标准设备文件的输入输出函数,本节讨论对磁盘...
  • linux下的文件的输入与输出 一.输入与出处的定义 输入输入是指我们的键盘,鼠标硬件在系统中录入的字符 ...如图,我们输入的输出的的都在pts的这个快设备里 二。如何管理文件的输入与输出 管理输出 ####### ...
  • 文件的字符输入输出流和10.4.2节介绍的文件的字节输入输出流有相同的功能,但是传送数据的方式不一样,字节流以字节为单位传送数据,可以是任何类型的数据,例如文本、音频、视频、图片;而字符流以字符为单位传送...
  • 文件的输入输出函数

    2012-08-03 21:20:01
    文件的输入输出函数 键盘、显示器、打印机、磁盘驱动器逻辑设备, 其输入输出都可以通过文件管理的方法来完成。而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍Turbo C2.0提供的文件...
  • C# 文件的输入输出

    2020-11-25 09:43:56
    System.IO 命名空间有各种不同类,用于执行各种文件操作,如创建和删除文件、读取或写入文件,关闭文件等。 下表列出了一些 System.IO 命名空间中常用非抽象类: I/O 类 描述 BinaryReader 从二进制流读取
  • 每一个被使用的文件都在内存中用一个FILE结构体来存储相应的文件信息(如文件的名字、文件的状态、文件当前位置)。FILE的定义在stdio.h中 typedef struct { short level; //缓冲区“满”的程度 unsigned ...
  • 文件的输入输出函数 键盘、显示器、打印机、磁盘驱动器逻辑设备, 其输入输出都可以通过文件管理的方法来完成。而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍C语言、C++提供的文件...
  • 在介绍输入输出流之前,首先需要了解如何创建文件,创建文件夹以及遍历文件夹各种操作,这里面不在一一介绍,主要介绍的是文件的输入输出流操作。在起初学习文件操作之前,总是喜欢将输入输出弄混淆,后来通过看...
  • (3)数据流:输入输出是数据传输过程 2.文件名 (1)文件路径 (2)文件名主干 (3)文件后缀 3.文件分类 数据文件分为ASCII文件和二进制文件,数据在内存中是以二进制形式存储,不加转换就是二进制文件...
  • 这样好处是增强了文件输入输出功能 例如 我们只用文件流不能直接对文件写入 int char float 类型数据 但是我们吧这三个流连接起来 就增强了流功能 下面通过代码 实现 FileOutputStream ...
  • Java文件输入输出

    千次阅读 2019-05-08 16:28:05
    在Android开发中,文件操作还是比较频繁的,本文主要记录下文件的加载,写入相关操作的使用。 流的分类 在Java程序中操作文件,都是以流的形式来操作 首先按照流向可以分为输入流与输出流两种,这里的输入输出是...
  • 文件的输入输出

    2019-01-27 09:30:10
    1、文件的读和写 open() 将会返回一个 file 对象,基本语法格式如下: open(file, mode='r', buffering=None, encoding=None, errors=None, ... mode:决定了打开文件的模式:只读,写入,追加。所有可取值见...
  • linux中文件输入输出的管理

    千次阅读 2018-03-29 10:22:51
    1,输入输入是指我们键盘,鼠标硬件在系统中录入字符 2,输出输出是指系统在接受到我们想要实现功能字符后,经过进程处理产生字符,  输出会有两种出现,编号1为正确输出,编号2为错误输出,默认...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,019
精华内容 4,007
关键字:

文件的输出输入等