eclipse 中的每样东西都是插件, 所以可以通过添加插件实现强大的功能, 并且可以支持更多语言的开发, 入C,C++,PHP等.
eclipse 分支 = eclipse标准版 + 相关功能插件集
java平台的划分
1, Java SE --Java平台标准版 : 提供了java平台开发的标准类库
2, Java EE -- Java平台企业版: 在SE基础上,增加了网站开发的类库
3, Java ME -- Java平台微型版: 主要用于手机, ppa等移动平台的开发
java语言特征
1, 语法简明, 2,面向对象, 3 跨平台(可移植性强),4 安全, 5,多线程
java语言运行机制
1, 编译与解释结合的语言
2, .java: 可直接阅读的源程序
3, .class: 不可直接阅读的字节码
4, Java解释器不跨平台, .java和.class跨平台
补充: "java解释器就是把在java虚拟机上运行的目标代码(字节码)解释成为具体平台的机器码的程序。"即jdk或jre目录下bin目录中的java.exe文件,而javac.exe是编译器。
运行java程序的过程是先用javac编译,然后用java解释。而一经编译成功后,就可以直接用java.exe随处解释运行了
JDK
java标准版开发包, 是一套专门用于java开发的工具包, JDK提供了编译,运行,调试java程序所需的工具.
JRE
JRE是Java运行时环境. 是运行java程序必须的条件
JVM
JVM是Java虚拟机
JDK JRE JVM 关系图
JAVA API
是Java系统核心类库
JAR
是java的归档文件, 是与平台无关的文件格式, 它允许将许多文件组合成一个压缩文件
环境变量
环境变量是一个具有特定名字的对象, 它包含了一个或者多个应用程序将使用到的信息
文件的创建, 删除, 重命名
File file = new File("hello.txt"); //hello.txt为文件名
//写不同的目录,就创建在了不同的目录下 可以写文"bin/hello.txt","../hello.txt", '../../hello.txt'
../表示文件被创建在了工程的上一级目录, ../../表示上一级的上一级目录
//是否存在
if(file.exists()){
//判断文件的属性 是文件还是路径
//文件, 存在为true, 不存在为false
System.out.println(file.isFile());
//路径(文件夹)
System.out.println(file.isDirectory());
} else {
System.out.println("文件不存在");
}
创建:
如果文件不存在, 则去创建文件
创建文件的代码: file.createNewFile();
加上异常判断
try {
file.createNewFile();
System.out.println("文件已经被创建");
} catch (IOException e) {
//出现异常, 则输出,文件无法被创建
System.out.println("文件无法被创建");
}}
删除:
file.delete();
重命名:
//文件的重命名
//创建一个新的文件
File nameto = new File("new Hello.txt");
//调用文件的重命名方法
file.renameTo(nameto);
这时候文件名变成为了 new Hello
文件夹的创建,重命名, 删除
创建:
File folder = new File("my new folder");
folder.mkdir():创建文件夹
mkdir 返回值为bool类型, 如果为真则为true, 为假则为false
所以可以通过if判断来判断文件夹是否创建成功
if(folder.mkdir())
{
System.out.println("文件夹创建完成");
} else {
//文件夹如果已经存在, 则是不能创建的
if (folder.exists()){
System.out.println("文件夹已经存在不用创建");
} else {
//要创建的文件夹的上级文件夹必须存在, 如果上级文件夹不存在, 则会调用这个地方
System.out.println("文件夹创建失败");
}
}
// 用 madirs() 创建文件夹, 就不会有上面文件夹创建失败原因的局限, 不管中间缺失了多少级文件目录结构, 都会自动补全
File folder = new File("my new folder/one/two/three");
if(folder.mkdirs())
{System.out.println("文件夹创建完成");}
重命名:
//文件夹的重命名, 也可以用于文件夹的移动
File folder = new File("my new folder");
File newFolder = new File("my new folder -new");
// folder.renameTo(newFolder);//返回值为bool类型
if (folder.renameTo(newFolder)){
//可以单独给每一级重命名
System.out.println("done");
} else {
System.out.println("fail");
}
删除:
File folder = new File("my new folder -new");
// folder.delete();只能删除空文件夹
if(folder.delete()){
System.out.println("done");
}else{
System.out.println("fail");
}
文件属性的读取
File file = new File("test.txt");
在工程下手动创建文件: 右击项目名 - new - file
//判断文件是否存在
System.out.println("判断文件是否存在"+file.exists());
// //读取文件名称
System.out.println("读取文件名称"+file.getName());
// //读取文件路径
System.out.println("读取文件路径"+file.getPath());
// //读取文件绝对路径
System.out.println("读取文件绝对路径"+file.getAbsolutePath());
// //获取文件父级路径
System.out.println("获取文件父级路径"+new File(file.getAbsolutePath()).getParent());
// //读取文件大小
System.out.println("读取文件大小"+file.length()+"byte");
// //判断文件是否被隐藏
System.out.println("判断文件是否被隐藏"+file.isHidden());
// //判断文件是否可读
System.out.println("判断文件是否可读"+file.canRead());
// //判断文件是否可写
System.out.println("判断文件是否可写"+file.canWrite());
// //判断文件是否为文件夹
System.out.println("判断文件是否为文件夹"+file.isDirectory());
文件属性的设置
File file = new File("test.file");
if(file.exists()){
//将文件设定为可写
file.setWritable(true);
//将文件设定为可读
file.setReadable(true);
//将文件设定为只读
file.setReadOnly();
}}
遍历文件夹
/Users/mac/Documents/workspace 是文件路径
printFiles(new File("/Users/mac/Documents/workspace"));
文件路径的查找: 在系统的文件浏览器中找到工程 ,显示简介, 然后复制绝对路径
}
//遍历文件夹
public static void printFiles(File dir) {
//判断当前的dir是不是路径
if (dir.isDirectory()){
//dir.listFiles() 返回的是一个file对象的数组
File next[] = dir.listFiles();
for (int i = 0; i < next.length; i++){
//如果是文件
if(next[i].isFile()){
//输入名字
System.out.println(next[i].getName());
} else {
// 不是文件是文件夹, 则循环
printFiles(next[i]);
}}}}
或
public static void main(String[] args) {
// TODO Auto-generated method stub
printFiles(new File("../FileScaner"), 1);
}
//遍历文件夹
public static void printFiles(File dir, int tab) {
//判断当前的dir是不是路径
if (dir.isDirectory()){
//dir.listFiles() 返回的是一个file对象的数组
File next[] = dir.listFiles();
for (int i = 0; i < next.length; i++){
for (int j = 0; j < tab; j++){
System.out.print("|--");}
//输入名字
System.out.println(next[i].getName());
//如果是文件夹
if(next[i].isDirectory()){
printFiles(next[i], tab + 1);}}}
文件的简单读写
读出文件:
public static void main(String[] args) {
File file = new File("text.txt");
//判断文件存在
if (file.exists()){
System.out.println("exist");
//FileInputStream 文件输入流
try {
//创建文件输入流
FileInputStream fis = new FileInputStream(file);
//获取了输入流之后,需要将这个输入流包装成inputStreamReader
//InputStreamReader 字符流 在字符和字节相互转换的时候需要制定编码类型
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
//再创建一个带有缓冲区的reader, 可以直接读取一行数据
BufferedReader br = new BufferedReader(isr);
String line;//用来临时存放读取到的一行数据
while ((line = br.readLine())!=null) {
System.out.println(line);
}
br.close();
isr.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
写入文件
try {
File newfile = new File("newtext.txt");
//文件输出流
FileOutputStream fos = new FileOutputStream(newfile);
//文件输出流的writer
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
//带有缓冲区的writer
BufferedWriter bw = new BufferedWriter(osw);
//向文件中写入数据
bw.write("123\n");
bw.write("345\n");
bw.write("456\n");
//关闭输出流
bw.close();
osw.close();
fos.close();
System.out.println("写入完成");