认识Java的流

1、文件和流的基本知识

(1)文件是保存数据的地方。

(2)流是一组有序的数据序列 以先进先出方式发送信息的通道

(3)输入流:数据从数据源(文件)到程序(内存)的路径。

(4)输出流:数据从程序(内存)到数据源(文件)的路径.。

(5)java流的分类分为按流向区分和处理数据单元区分。

(6)输出流主要是OutputStream和Write作为基类,输出流是InputStream和Read作为基类。

(7)输入/输出流又分为字节流和字符流两种形式字节流是8位通用字节流,其基本单位是字节。字节流的基类是InputStream类和OutputStream类,它们是抽象类。字符流是16位Unicode字符流,基本单位是Unicode字符。字符流最适合用来处理字符串和文本,因为它们支持国际上大多的字符集和语言。字符流的基类是Reader类和Writer类,它们是抽象类。

2、File类中的常用方法

(1)boolean exists( ):判断文件或目录是否存在(要现在E盘创建爱你一个b.txt和test文件)

File file1=new File("E:\\b.txt");
		File file2=new File("E:\\test");
		//boolean exists()  判断是否存在测试此抽象路径名表示的文件或目录是否存在。
        //存在为true,不存在为false.
        boolean result1= file1.exists();
        boolean result2=file2.exists();
        System.out.println(result1);
        System.out.println(result2);

(2)boolean isFile()和boolean isDirectory()。

//boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件 ,当且仅当此抽象路径名表示的文件存在且 是一个标准文件时,返回 true;否则返回 false 
//boolean isDirectory():测试此抽象路径名表示的文件是否是一个
	   System.out.println(file1.isFile());
	   System.out.println(file1.isDirectory());
	   System.out.println(file2.isFile());
	   System.out.println(file2.isDirectory());

(3)String getName( )返回由此抽象路径名表示的文件或目录的名称。

public class Foledemo01 {
	public static void main(String[] args) {
		 //创建对象
		File file1=new File("E:\\b.txt");
		File file2=new File("E:\\test");
System.out.println(file1.getName());
	   System.out.println(file2.getName());
}
}

(4)删除boolean delete()  删除此抽象路径名表示的文件或目录。

 
public class Foledemo01 {
	public static void main(String[] args) {
		 //创建对象
		File file1=new File("E:\\b.txt");
		File file2=new File("E:\\test");System.out.println(file1.delete());
	   System.out.println(file2.delete());
}
}

(5)boolean createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false  。


public class Foledemo01 {
	public static void main(String[] args) {
		 //创建对象
		File file1=new File("E:\\b.txt");
		File file2=new File("E:\\test");try {
		System.out.println(file3.createNewFile());
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
		
		
	}
  
	
}

(6)boolean mkdir() 和boolean mkdirs()。


public class Filedemo02 {
         
public static void main(String[] args) {
		File file1=new File("E:\\f\\c\\e");
		File file2=new File("E:\\e");
        //boolean mkdir() 创建此抽象路径名指定的目录。 
        //boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
		System.out.println(file2.mkdir());
		System.out.println(file1.mkdirs());
}
}

(6)long length()

//long length():返回由此抽象路径名表示的文件的长度。 
		File file3=new File("E:\\b.txt");

(7)String getPath():将此抽象路径名转换为一个路径名字符串。 
        String getAbsolutePath():返回此抽象路径名的绝对路径名字符串


public class Filedemo02 {

	public static void main(String[] args) {
File file4 = new File("test.text");
		try {
			file4.createNewFile();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(file4.getPath());
		System.out.println(file4.getAbsolutePath());
		
	}
}

3、InputStream类中的方法

(1) void close()关闭此输入流并释放与该流关联的所有系统资源。

(2)abstract int read()从输入流中读取数据的下一个字节。返回 0255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1

(3) int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。

(4)int read(byte[] b,int off,int len)将输入流中最多 len 个数据字节读入 byte 数组。

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

4、FileInputStream的构造方法

(1)FileInputStream(File file) 通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。

(2)FileInputStream(String name) 通过打开一个到实际文件的连接来创建一FileInputStream,该文件通过文件系统中的路径名 name 指定。

5、OutputStream类常用方法

(1)void write(int c):关闭此输入流并释放与该流关联的所有系统资源。

(2)void write(byte[] buf): 将 b.length 个字节从指定的 byte 数组写入此输出流。

(3)void write(byte[] b,int off,int len):将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。

(4)void close() void flush():强制把缓冲区的数据写到输出流中

6、子类FileOutputStream常用的构造方法

(1)FileOutputStream (File file):创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

(2)FileOutputStream(String name)  :创建一个向具有指定名称的文件中写入数据的输出文件流。

(3)FileOutputStream(String name,boolean append):创建一个向具有指定 name 的文件中写入数据的输出文件流。

注意:

1.前两种构造方法在向文件写数据时将覆盖文件中原有的内容。

2.创建FileOutputStream实例时,如果相应的文件并不存在,则会自动创建一个空的文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值