java文件操作,集合操作 时间日期的操作 bulidPath介绍

java中的文件操作主要是通过File这个类来进行实现的

创建一个文件对象 在相对目录下 

File file = new File("../hello.txt");

判断文件是否存在

file.exists()

文件的删除

file.delete();

判断文件是文件还是路径可以用isFile或者isDirectory这两个方法

文件的重命名 用创建另外一个File的对象 随后注意两个文件必须在同一个分区下,也就是在同一个盘中,再用renameTo这个方法即可

//重命名 文件结构必须处于同一个分区
	File nameTo = new File("new Name");
	file.renameTo(nameTo);
创建文件夹 用new  Folder这个方法

	//创建文件夹
	File folder = new File("my folder");
创建一个路径下的文件夹

folder.mkdir();
创建多级路径下的文件夹

//创建多级文件夹
	folder.mkdirs();
创建一个文件 可以用try catch的方法

try {
		file.createNewFile();
		System.out.println("文件已经创建");
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		System.out.println("文件无法被创建");
	}
设置文件的属性

设置文件的可读 可写性

File file = new File("cao.txt");
//文件属性的设置
//将文件设为可写
file.setWritable(true);
//遍历文件夹
写入文件 首先创立文件的对象 随后指明文件的输入流 随后指明写入流,指明utf-8编码 随后创建写入缓冲区 随后直接写 关闭的顺序与创建的顺序相反即可

File newFile = new File("newtext.txt");
		FileOutputStream fos = new FileOutputStream(newFile);
		OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
		bw = new BufferedWriter(osw);
		//直接写
		bw.write("cao");
		//关闭的时候先打开的后代开
如果该文件对象是个文件夹的话 可以拿出其文件对象 随后进行遍历 跟写入一样的顺序 创建输出流,输出流的格式,随后用try Catch语句进行读出或者输出操作即可

File next[]	= dir.listFiles();
	for(int i = 0; i < next.length;i++){
		if(next[i].isFile()){
			System.out.println(next[i].getName());
			//创建文件输入流对象
			try {
				//输出到屏幕流
				FileInputStream fil = new FileInputStream(next[i]);
		//输出到屏幕的流reader
				InputStreamReader isr = new InputStreamReader(fil, "UTF-8");
		//创建缓冲区
		BufferedReader br = new BufferedReader(isr);
		String line;
		while((line = br.readLine()) != null){
			
		}
		} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
文件的操作大概这么多

时间 日期的操作 在jdk1.1之前,主要用的是Date类,来读取日期,在jdk1.1之后,主要用的是Calendar类来读取文件 

string date Calendar类三者之间存在着互相转化

三者之间的转换

获得系统当前的时间

//获得系统的当前时间
		long now = System.currentTimeMillis();
		System.out.println(now);

创建date类,用date进行输出

//创建date
		Date d1 = new Date(now);
		System.out.println(d1);
	//使用Calendar
		Calendar cl = Calendar.getInstance();
date转换为string 指定转换类型用format进行转换,string转换为date用parse来进行转换

//创建date类
		Date d1 = new Date(System.currentTimeMillis());
		Calendar c1 = Calendar.getInstance();
		//格式化
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
	System.out.println("格式化前d1 =" +  d1.toString());
	System.out.println("格式化后的d1 = " +  sdf.format(d1));
//String和date类型之间的转换
	String date = "2015-06-01";
	SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
	Date d2 = sdf1.parse(date);
	System.out.print(d2);

将date中的日期提前两天 首先读取date 转化为calendar类后,再设置提前两天,随后再转换为date类进行返回

	public static Date prepaer(Date d1){
		//将date类转换为calendar类
		Calendar cal = new GregorianCalendar();
		cal.setTime(d1);
		//提前两周
		

		cal.add(Calendar.WEEK_OF_MONTH,-2);
		cal.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
		
	

return cal.getTime();
		
	}
关于日期的操作大致就这么多

集合的操作

有collection 子类有List set 和 queue 类 list 中可以存放任意的数据,并且数据元素是可以重复的 子类有ArrayList和Vector

ArrayList li = new ArrayList<String>();
		li.add("A");
		li.add("B");
		System.out.println(li.get(0));
		li.isEmpty();
		//移除某一项
		li.remove(0);
		//vector类
		Vector<String> a = new Vector<String>();
		a.add("cao");
		a.remove(0);
ArrayList和Vector相比,采用异步方式,是非线程安全的,但性能较高

Se类中不能加入重复的元素,但是是可以排序的 常用的有散列存放hashSet 和有序存放treeSet

	TreeSet<String> set = new TreeSet<String>();
		set.add("cao");
在集合中,一般的输出是通过迭代器进行输出的 iteroror  而这个迭代器又是集合给的


//迭代器interator 集合输出的基本操作 通过集合获取
	     Iterator<String> iter = set.iterator();
要注意在迭代器输出的过程当中,集合他自身不能删除元素,否则程序会报错 而迭代器本身时可以进行删除的

//迭代器interator 集合输出的基本操作 通过集合获取
	     Iterator<String> iter = set.iterator();
	     while(iter.hasNext()){
	    	 //集合的remove和迭代器的remove方法是不同的
	    	 //remove方法
	    	 String str = iter.next();
	    	 if("A".equals(str)){
	    		 iter.remove();
	    	 }
	    	 System.out.println(iter.next());
	     }
Map方法,是一种键值对的映射关系 常用的有hashMap和tableMap 无序存放,不允许出现重复的键


	//Map接口 是key-Value形式进行保存 hashMap HashTable 无序存放 不允许重复的键
	     HashMap<String, Integer> b = new HashMap<String,Integer>();
	     //插入的方法 键是唯一的
	     b.put("cao", 1);
	     //通过键取出值
	     Integer r = b.get("cao");
	     //键存在
	    boolean c = b.containsKey("cao");
	    //值是否存在
	    b.containsValue(1);
	    //将所有的键打印出来
	    Set<String> d = b.keySet();
	    //通过迭代器进行输出
	    Iterator<String> e = d.iterator();
	    Set<Integer> e = (Set<Integer>) b.values();
大致就是这么多

BuildPath的介绍


bulidPath中可以包含第三方包,和其他的工程,在以后的实践中,会做进一步的阐述








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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值