java中的文件操作主要是通过File这个类来进行实现的
创建一个文件对象 在相对目录下
File file = new File("../hello.txt");
file.exists()
file.delete();
文件的重命名 用创建另外一个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 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);
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中可以包含第三方包,和其他的工程,在以后的实践中,会做进一步的阐述