Java 文件与流

 File类

Java对于文件的管理是通过java.io.File类实现的

Java中文件的管理,主要是针对文件或是目录路径名的管理

  • 文件的属性信息
  • 文件的检查
  • 文件的创建和删除
  • 不包括文件的访问

构造方法:

File 对象名 = new File(String path); //指定路径名来创建File对象

File 对象名 = new File(String parent,String child);//在父类parent路径下,创建child文件

File 对象名 = new File(File parent,String child);//在父类File对象parent路径下,创建child文件

 常用方法:

  • boolean creatNewFile() 在File的抽象路径指定的文件不存在是,创建文件
  • boolean exists() 判断File对象指定的抽象路径的文件或目录是否存在
  • boolean delete() 删除File对象所指向的文件或者目录
  • boolean mkdir() 创建指定的目录,如果父目录不存在,返回false
  • boolean mkdirs() 创建指定的目录,如果父目录不存在,则先创建父目录
  • booean isFile() 判断当前的File对象是否是一个文件
  • Sting getName() 返回文件名
  • String[] list() 获取目录下的子文件和子目录的名称,返回字符串数组
  • File[] listFile()获取目录下的子文件和子目录的File数组

 数据流

数据流是用来表示连续不断的一串数据的集合。

数据流的分类

  • 按流的方向分:输入流、输出流
  • 按处理数据的单位分:字节流、字符流
  • 按功能分:节点流、处理流

 流的层次结构图如下:

继承规则:

  • 输入字节流:全部继承自InputStream,都叫XXXInputStream
  • 输出字节流:全部继承自OutputStream,都叫XXXOutputStream(printStream除外)
  • 输入字符流:全部继承自Reader,都叫XXXReader
  • 输出字符流:全部继承自Writer,都叫XXXWriter

 输入字节流

常用方法:

  • int read()每次读取一个字节的内容,以int的形式返回,若没有内容可读,返回-1
  • int read(byte[] buff) 将读到的内容放在字节数组buff中,返回实际读到的字节数
  • int read(byte[],int offset,int len)将读到的内容放到字节数组buff中,从数组的offset的位置开始往后放,len表示读取的长度
  • close() 关闭流,释放资源

 

/**
 * 字节输入流示例
 */
import java.io.*;

public class inputStreamDemo {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		FileInputStream in = null;
		try {
			//创建对象
			in = new FileInputStream("H:/javaIOTest/file1.txt" );
			//从输入流中读取内容(每次只读一个字节)
			/*int res = 0;
			while((res = in.read()) != -1) {
				System.out.print((char)res);
			}
			System.out.println();*/
			//创建buffer数组
			byte[] buf = new byte[30];
			in.read(buf, 0, 30);
			System.out.println(new String(buf));
			
		} catch (Exception e) {
			
			e.printStackTrace();
		}finally {
			//关闭流,释放资源
			in.close();
		}
	}

}

输出字节流

常用方法:

  • write(byte[] buff) 将buff中的字节内容输出到文件中
  • write(byte[] buff,int offset,int len) 将buff中的字符内容宋offset开始的len个字节写入文件中
  • flush()刷新输出流的缓冲区,将缓冲区的字符内容写到文件中
  • close()关闭流,释放资源,在close()方法中也调用了flush()方法

 

/**
 * 字节输出流示例
 */
import java.io.*;
public class OutputStreamDemo {
	public static void main(String[] args) throws IOException {
		FileOutputStream out = null;
		try {
			//构造方法第二个参数表示是否在原文件后面添加数据,不写或写false则覆盖源文件数据
			out = new FileOutputStream("H:/javaIOTest/file.txt",true);
			//write传入多个数据需要使用字节数组
			out.write("aaabbb".getBytes());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
            //关闭流,释放资源
			out.close();
		}
		
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值