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中可以包含第三方包,和其他的工程,在以后的实践中,会做进一步的阐述