Java中通过输入输出流进行文件的读写
程序员文章站
2022-06-01 22:58:35
...
流是一个很形象的概念,当程序需要读取数据时就会开启一个通向数据源的数据流,这个数据源可以是文件,内存或者是网络连接。类似的,当程序需要写入文件时,就会开启一个通向目的地的流。这里的数据源和目的地都可以通过File类中构造函数的参数进行赋值。
Java流的分类
按流向分:
输入流: 程序可以从中读取数据的流。
输出流: 程序能向其中写入数据的流。
按数据传输单位分:
字节流: 以字节为单位传输数据的流
字符流: 以字符为单位传输数据的流
按功能分:
节点流: 用于直接操作目标设备的流
过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。
JDK所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类。
InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。
OutputStream:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。
Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。
Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。
此文简单实现了Java I/O中的对File(文件的处理),File类是独立于系统平台的,利用其构造函数创建出相应的File对象;再调用其中的方法实现对文件各个属性方面的操作。
构造函数:
File( String path)
File(String path, String FileName)
File(File dir, String name)
File 类提供了一种与机器无关的方式来描述一个文件对象的属性,通过类File所提供的方法可以得到文件或目录的描述信息,这主要包括名称、所在路经、可读性、可写性、文件的长度等,还可以生成新的目录、改变文件名、删除文件、列出一个目录中的所有文件的操作。
以下是对文件进行读出和写入的简单实现:
package com.czj_IO; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class TestIO { /** * 读文件的方法 * @param fName文件绝对路径 */ public void readFile(String fName){ try { FileInputStream fis = new FileInputStream(fName); int n=fis.read();//读取下一个字节 //循环读写 while(n!=-1){ System.out.println("读到的字节是"+n); n = fis.read(); } fis.close();//关闭输入流 } catch (Exception e) { e.printStackTrace(); } } /** * 写文件的方法 * @param msg写入的内容 * @param s文件绝对路径 * @throws Exception抛出异常 */ public void writeFile(String msg,String s) throws Exception{ try { FileOutputStream fos = new FileOutputStream(s,false); byte[] b = msg.getBytes();//得到组成字符串的字节 fos.write(b); fos.close();//关闭输出流 } catch (FileNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { TestIO tjm = new TestIO(); tjm.readFile("E://类与对象总结.txt"); try {//此语句运行两次必须改写入文件的文件名或删除上次写入的文件,否则报错(已有该文件) tjm.writeFile("hello! 你好!~~~~", "E://写入的文件1.txt"); } catch (Exception e) { e.printStackTrace(); } } }
梣梓cenzi
2015-05-04