java----输入输出流(二)

File类的删除功能

boolean  delete()
删除成功返回ture,删除失败返回false

  • 删除方法,不走回收站,直接从硬盘删除

File类获取功能

StringgetAbsolustePath( ) f返回此抽象路径名的绝对路径名字符串
StringgetName返回由此抽象路径名表示的文件或目录的名称
StringgetPath( )将此抽象路径名转换为一个路径名字符串

方法演示:

public  class FileMethodDemo{
      public static void main(String args[ ]){
        //创建文件对象
        File file = new File("Test33.java");
        //获取文件的绝对路径,即全路径
        String absPath = file getAbsolutePath( );
        //File中封装的路径是什么获取到的就是什么
        String path =file.getPath();
        //获取文件名称
        String filename  = file.getName(  );


   System.out.println("absPath="+absPath);
   System.out.println("path="+path);
   System.out.println("filename="+filename);
 
}
}

File获取判断功能

booleanexists( )判断File构造方法中封装路径是否存在
booleanisDirectory( )判断File构造方法中封装的路径是不是文件夹
booleanisFile( ) 判断File构造方法这种封装的路径是不是文件

File类获取list功能

Stringlist()返回一个字符串数组,这些字符串制定此抽象路径表示的目录中的文件和目录
FilelistFiles( )返回一个抽象路径数组,这些路径名表示由此抽象路径名表示的目录中的文件

方法演示:

public class FileMethodDemo3 {
	public static void main(String[] args) {
		File dir = new File("e:\\java_code");
		//获取的是目录下的当前的文件以及文件夹的名称。
		String[] names = dir.list();
		for(String name : names){
			System.out.println(name);
		}
		//获取目录下当前文件以及文件对象,只要拿到了文件对象,那么就可以获取其中想要的信息
		File[] files = dir.listFiles();
		for(File file : files){
			System.out.println(file);
		}
	}
}

注意: 在获取指定目录下的文件或者文件夹时必须满足下面两个条件

  • 1,指定的目录必须是存在的,
  • 2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

字节输入流

abstract intread( )从输入流中读取数据的下一个字节
intread( byte[ ] b) 从输入流中读取一定数量的字节,并将七储存在 缓冲区数组b中。
  • int read():读取一个字节并返回,没有字节返回-1.

字节输出流OutputStream

voidclose( )关闭此输出流并释放于此刘有关的所有系统资源
voidwrite(byte[ ] b )将指定byte数组中从偏移量byte数组写入此输出流
voidwrite(byte[ ] b.int off,int len)指定byte数组中从偏移量off开始的冷个字节写入此输出流
voidwrite(int b)将指定的自觉写入此输出流

FileInputStream

FileInputStream(File file)通过打开到世纪文件的链接来创建一个FileInputStream,该文件通过文件系统中的 File对象file指定
FileInputStream(String name)通过打开一个到实际文件的链接来创建一个FileInputStream,该文件通过文件系统中的路径名name指定。

FileOutputStream


public class FileOutputStreamDemo {
	public static void main(String[] args) throws IOException {
		//需求:将数据写入到文件中。
		//创建存储数据的文件。
		File file = new File("c:\\file.txt");
		//创建一个用于操作文件的字节输出流对象。一创建就必须明确数据存储目的地。
		//输出流目的是文件,会自动创建。如果文件存在,则覆盖。
		FileOutputStream fos = new FileOutputStream(file);
		//调用父类中的write方法。
		byte[] data = "abcde".getBytes();
		fos.write(data);
		//关闭流资源。
		fos.close();
	}
}

  • 上面的for.write(“abcde”.getBytes())用的是write(byte[] b)方法,它会将字节数组中b.length个字节即所有字节都写入到输出流中。可以采用write(byte[] b,int off,int len)方法每次写给定位置、长度的字节数据。

给文件的换行

FileOutputStream (File file,booiean,boolean append)创建一个指定的File对象表示文件中写入数据的输出文件流
FileOutputStream(String name,boolean append)创建一个具指定name的文件中写入数据的输出文件流
public class FileOutputStreamDemo2 {
	public static void main(String[] args) throws Exception {
		File file = new File("c:\\file.txt");
		FileOutputStream fos = new FileOutputStream(file, true);
		[设置给指定文件续写数据]
		String str = "\r\n"[实现换行]+"itcast";
		fos.write(str.getBytes());
		fos.close();
	}
}


IO异常处理

public class FileOutputStreamDemo3 {
	public static void main(String[] args) {
		File file = new File("c:\\file.txt");
		//定义FileOutputStream的引用
		FileOutputStream fos = null;
		try {
			//创建FileOutputStream对象
			fos = new FileOutputStream(file);
			//写出数据
			fos.write("abcde".getBytes());
		} catch (IOException e) {
			System.out.println(e.toString() + "----");
		} finally {
			//一定要判断fos是否为null,只有不为null时,才可以关闭资源
			if (fos != null) {
				try {
					fos.close();
				} catch (IOException e) {
					throw new RuntimeException("");
				}
			}
		}
	}
}
  • 细节: 1. 保证流对象变量,作用域足够。
    2. catch里面,怎么处理异常
    输出异常的信息,目的是看到哪里出现了问题。
    3. 如果流对象建立失败了,需要关闭资源吗?
    new对象的时候,失败了没有占用系统资源
    释放资源的时候,对流对象判断null
    变量不是null,对象建立成功,需要关闭资源。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值