一.java中的注释文档
一、三种注释方式
1、使用//的注释方式
这个很简单,就是在//之后填写自己的要注释的内容,也是我自己目前最常用的一种方式,这个方式适用于2单行注释。
2、使用/* 内容 */
这个也很好理解,就是在内容区域用/* 和*/括起来。在里面填写自己的注释内容,这个方式适用于多行注释。
3、使用javaDoc文档进行注释
先看一下出现的问题:
我们在编写代码时候,代码的维护是最大的问题。如果我们的文档和代码是分离的,那么每一次修改代码时候,必须要修改相应的文档,这样就会很不方便。为了能够解决这个缺陷,为此我们的做法是:将代码和文档链接起来
再看如何解决
为了达到代码和文档链接起来的目的。
1、将所有的东西放在同一个文件夹里面
2、使用一种特殊的语法来标记文档
3、使用工具来提取这些注释文档
意思就是,我们把有特殊语法的注释和代码写在一起,然后使用工具提取出来。 为此,javadoc便应用而生了,它输出的是一个html文档。
接下来看一个例子:
import java.io.*;
/**
* 这个类演示了文档注释
* @author 张三
* @version 1.2
*/
public class SquareNum {
/**
一个int型变量
*/
int a=0;
/**
* @param num The value to be squared.
* @return num squared.
*/
public double square(double num) {
return num * num;
}
/**
* This method demonstrates square().
* @param args Unused.
* @return Nothing.
* @exception IOException On input error.
* @see IOException
*/
public static void main(String args[]) throws IOException
{
}
}
从上面的例子可以看到,一共有三种类型的注释文档,分别对应于注释位置后面的三种元素类、域、方法。
注意: javadoc只能为public和protected成员进行注释。如果是私有类型的则提取的时候会被忽略掉。:
2、在注释文档中,每一行开头的星号和前面的空格都会被自动忽略掉,javadoc会对所有的内容重新2进行格式化,
3、不要在嵌入式HTML中使用标题标签,javadoc会插入自己的标签,而自己的标签会发生冲突。
最后看一下语法标签
4、使用工具提取javadoc
这里有已经使用javadoc语法的代码
public class Test {
public static void main(String[] args) {
System.out.println("example");
}
/**
*
* @author duan
* @version 1.0
* 这个类用来测试javadoc
* 在这个地方编写类说明
*
*/
public class TestDoc {
/**
* name是一个字符串,内容是javadoc
*/
public String name= "javadoc";
public TestDoc(String name){}
/**
* 这个方法改变类域中的name
* @param name 设置的名字
* @return 没有返回值
*/
public String setname(String name){
this.name = name;
return name;
}
}
}
二.java中File类及常用方法总结
1.File类
文件在内存中的存储会有一级或多级目录,而File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作,以下对其中的一些常用的方法进行总结。
2.构造方法
1.File(String pathname)
File类型的对象既可以指向文件,也可以指向文件夹,调用该构造方法只需将目标文件或目标文件夹的路径传入该构造方法即可,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test");
file=new File("D:\\Test\\File.txt");
}
}
2.File(String parent, String child)
一个文件或者文件夹的路径都可以分为父目路径和子目路径,而该构造方法的用法就是传入一个父目路径参数和一个子目路径的参数:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test","File.txt");
}
}
3.File(File parent, String child)
上一个构造方法中传入的第一个参数是父目路径的字符串,而该构造方法传入的第一个参数是File类型的父目路径:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File(new File("D:\\Test"),"File.txt");
}
}
3.常用方法
1.String getName()
该方法返回此对象表示的文件或目录最后一级文件夹名称,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.txt");
System.out.println(file.getName());
File file2 = new File("D:\\Test");
System.out.println(file2.getName());
}
}
2.String getParent()
该方法返回此File类对象的父目录路径名;如果此路径名没有指定父目录,则返回 null,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.txt");
System.out.println(file.getParent());
File file2 = new File("D:\\Test");
System.out.println(file2.getParent());
}
}
要注意的是,无论是父目路径还是子目路径,都既可以是一级也可以是多级。
getParent方法还有一个衍生方法:File getParentFile(),该方法的的底层代码如下:
public File getParentFile() {
String p = this.getParent();
if (p == null) return null;
return new File(p, this.prefixLength);
}
我们可以看到它的实质是调用getParent方法得到父目路径之后用其再创建一个File类对象,所以它得到的返回值为一个File类对象;如果File对象没有父目录,则返回 null,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.txt");
System.out.println(file.getParentFile());
File file2 = new File("D:\\Test");
System.out.println(file2.getParentFile());
}
}
3.String getPath()
该方法返回File对象所表示的字符串路径,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.txt");
System.out.println(file.getPath());
File file2 = new File("D:\\Test");
System.out.println(file2.getPath());
}
}
4.boolean renameTo(File dest)
重新命名此File对象表示的文件,向方法中传入一个重命名的File类型的参数,重命名成功返回true,否则返回false,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.txt");
if(file.renameTo(new File("D:\\Test\\F.txt"))){
System.out.println("YES");
}
}
}
5.boolean mkdir()
创建此File类对象指定的目录,不包含父目录。创建成功回true,否则返回false,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File");
if(file.mkdir()){
System.out.println("YES");
}
}
}
依照路径打开文件,可以看到在Test目录中已经创建好了FIle目录。
注意:
①该方法只能创建目录不能创建文件,创建文件的方法我们稍后再说
②该方法只能创建一级目录,如果file对象中有多级目录未创建,则会因为找不到指定路径而创建失败。
如果要一次创建多级目录,则可以使用该方法:boolean mkdirs(),该方法创建传入的File对象指定的目录,包括所有必需但不存在的父目录,创建成功返回true;否则返回false。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录,代码示例如下:
6.boolean createNewFile()
该方法的作用是,如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false代码示例如下:
package file;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.docx");
try {
if(file.createNewFile()){
System.out.println("YES");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
7.boolean exists()
该方法用于判断文件或目录是否存在,代码示例如下:
package file;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.docx");
File file2= new File("D:\\Test\\aa");
if(file.exists()) {
System.out.println("YES");
}
if(file2.exists()) {
System.out.println("YES");
}
}
}
8.boolean delete()
删除File类对象表示的目录或文件,文件或目录删除成功返回true,否则false,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\File.docx");
File file2= new File("D:\\Test\\aa\\bb\\File");
if(file.delete()) {
System.out.println("YES");
}
if(file2.delete()) {
System.out.println("YES");
}
}
}
注意,如果该对象表示一个目录,则该目录必须为空才能删除。
9.boolean isFile()
该方法判断此File对象代表的路径是否是一个标准文件,只有File对代表路径存在且是一个标准文件时才返回true,否则返回false,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test\\F.txt");
if(file.isFile()) {
System.out.println("YES");
}
}
}
10.boolean isDirectory()
该方法用于判断此File对象代表的路径表示是不是目录,只有File对象代表路径存在且是一个目录时才返回true,否则返回false,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\Test");
if(file.isDirectory()) {
System.out.println("YES");
}
}
}
11.String[] list()
该方法返回由File对象对应目录所包含文件名或文件夹名组成的字符串数组,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
String [] string=new File("D:\\Test").list();
for(String str:string) {
System.out.println(str);
}
}
}
12.File[] listFiles()
返回由当前File对象对应目录所包含文件路径或文件夹路径组成的File类型的数组,代码示例如下:
package file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File [] files=new File("D:\\Test").listFiles();
for(File file:files) {
System.out.println(file.getPath());
}
}
}
13.static separator
接下来说的这个不是方法,是一个属性。
在不同的操作系统中,例如Linux和Windows系统,它们的文件的路径中斜线的写法是不一样的,也就是说同样的File程序,使用“\”,则只能在Windows系统而不能在Linux系统中运行,而static separator就是用来解决这一不兼容性的。separator属性可以来表示斜线反斜线,代码示例如下:
package file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class Test {
public static void main(String[] args) {
File file=new File("D:"+File.separator+"Program_Files"+File.separator+"useful"+File.separator+"笔记"+File.separator+"7.25.docx");
System.out.println(file);
}
}