JAVA中io流====》file用法和一些方法

1 io流基本介绍

IO流用来处理设备之间的数据传输;
Java对数据的操作是通过流的方式;
Java用于操作流的对象都在IO包中;
流按操作数据分为两种:字节流与字符流;
流按流向分为:输入流,输出流;

处理二进制字节流:
outputstream,inputstream 是接口,
FileOutPutStream,FileInputStream实现上述接口
BufferedInputStream,BufferedOutPutStream采用了装饰者模式,传入FileOutPutStream,FileInputStream作为参数
DataInputStream,DataOutPutStream是针对八种基本数据类型的文件操作流

字节流的抽象类:
InputStream,OutputStream
字符流的抽象基类:
Reader,Writer
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀;
如: InputStream的子类FileInputStream;
如:Reader的子类FileReader;

流概念
在这里插入图片描述
其中这个“外部”可以是很多种介质:
1、本地磁盘文件、远程磁盘文件。
2、数据库链接
3、TCP、UDP、HTTP网络通信
4、进程间通信
5、硬件设备(键盘、串口)

流分类
在这里插入图片描述
1、从功能上:输入流、输出流
2、从结构上:字节流、字符流
3、从来源上:节点流、过滤流

2 file基本用法

在这里插入图片描述

  //创建一个File对象
  File file =new File("D://1909//题库与机试题//题库//二月");
  file.createNewFile();//创建文件   返回boolean
  //创建目录
  File dir = new File("D://1909//题库与机试题//题库//二月");
  dir.mkdir();//返回boolean
   //判断文件是否存在
  System.out.println(file.exists());//返回boolean
  //获取文件名
  System.out.println(file.getName());
  //获取文件的路径
  System.out.println(file.getAbsolutePath());
  File file1 = new File("FileDemo.java");
  System.out.println(file1.getAbsolutePath());
  //是否是一个目录
  System.out.println(dir.isDirectory());
  //是否在同一个文件
  System.out.println(file1.isFile());
  //是否是一个隐藏文件
  System.out.println(file.isHidden());
  File oir = new File("D://1909//删这里");
  //删除某个文件(所有文件都可以删,不要乱写路径。)
  System.out.println(oir.delete());
  //文件最后修改时间
  long time = file.lastModified();
  System.out.println(time);
  //将long类型时间转换为日期格式
  String date = formateDate(time,"yyyy-MM-dd");
  System.out.println(date);
  //文件是否可读
  System.out.println(file.canRead());
  //文件是否可写
  System.out.println(file.canWrite());
  //获得当前目录下的-所有文件
  File[] files = dir.listFiles();
  for (int i = 0; i < files.length; i++) {
   System.out.println(files[i].getName());
  }
  //获得文件长度
  long length = file.length();
  System.out.println("文件长度:"+length);
  //获得父及目录
  String parent = file.getParent();
  System.out.println(parent);
  //日期转换
 public  static String formateDate(long date, String type) {
 	SimpleDateFormat fm = new SimpleDateFormat(type); 
	String str = fm.format(new Date(date));
  
  	return str;
 }



public class FileInputStreamDemo {
	public static void main(String[] args) throws Exception {
  		File file = new File("D://tt//a.java");
  		//创建a.java
  		file.createNewFile();
//  		int read = inputStream.read();//读取一字节
//  		System.out.println(read);
		int length = (int) file.length();
		//读取到byte数组中
//  		byte[] bytes = new byte[length];
//  		inputStream.read(bytes);
//  		for (byte b : bytes) {
//   			System.out.print((char)b+" ");
//		}
		byte[] bytes = new byte[length];
  		inputStream.read(bytes,0,3);
  		for (byte b : bytes) {
			System.out.print((char)b+" ");
  		}
		//关闭流
  		inputStream.close();
//写入文档的一个方法(掉该方法时传入集合和地址)
public static <T> void writeObject(T t,String fileName) {
 	 ObjectOutputStream out = null;
 	 try {
   		out = new ObjectOutputStream(new FileOutputStream(fileName));
   		out.writeObject(t);
  	} catch (Exception e) {
  		e.printStackTrace();
  	} finally{
   		try {
    			out.flush();
    			out.close();
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
   		}
   	}
}
//从文档中读出来的方法
public static List<Object> readObject(Object object ,String fileName) {
  	ObjectInputStream out = null;
  	List<Object> resultObject = null;
  	try {
   		out = new ObjectInputStream(new FileInputStream(fileName));
  		resultObject = (List<Object>)out.readObject();
  	} catch (Exception e) {
   		e.printStackTrace();
   	} finally {
   		try {
    			out.close();
   		} catch (IOException e) {
   			// TODO Auto-generated catch block
    			e.printStackTrace();
   		}
   	}
   	return resultObject;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值