
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。
注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 javalangannotation 包中。
1、元注解
元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。
11、@Retention: 定义注解的保留策略
@Retention(RetentionPolicySOURCE) //注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicyCLASS) // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
@Retention(RetentionPolicyRUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
12、@Target:定义注解的作用目标
@Target(ElementTypeTYPE) //接口、类、枚举、注解
@Target(ElementTypeFIELD) //字段、枚举的常量
@Target(ElementTypeMETHOD) //方法
@Target(ElementTypePARAMETER) //方法参数
@Target(ElementTypeCONSTRUCTOR) //构造函数
@Target(ElementTypeLOCAL_VARIABLE)//局部变量
@Target(ElementTypeANNOTATION_TYPE)//注解
@Target(ElementTypePACKAGE) ///包
由以上的源码可以知道,他的elementType 可以有多个,一个注解可以为类的,方法的,字段的等等
13、@Document:说明该注解将被包含在javadoc中。
14、@Inherited:说明子类可以继承父类中的该注解。
我写了一段遍历某个文件查找指定文件的,你自己改成你需要的功能。
import javaioFile;
import javautilHashMap;
public class Test1 {
static HashMap<String, String> filelist=new HashMap<String, String>();
/
递归方法
@param path 文件路径
/
public static void find(String path){
File file=new File(path);
File[] files = filelistFiles();
//如果文件数组为null则返回
if (files == null)
return;
for (int i = 0; i < fileslength; i++) {
if (files[i]isDirectory()) {
//判断是不是文件夹,如果是文件夹则继续向下查找文件
find(files[i]getAbsolutePath());
} else {
//记录文件路径
String filePath = files[i]getAbsolutePath()toLowerCase();
//记录文件名
String fileName=files[i]getName()toLowerCase();
// Systemoutprintln("---"+strFileName);
filelistput(fileName, filePath);
}
}
}
public static void main(String[] args) {
//需要遍历的路径,也就是你要查找文件所在的路径
String path="D:\\kpi\\";
find(path);
Systemoutprintln("kpi9的路径:"+filelistget("kpi9"));
//输出结果:d:\kpi\kpi9
}
}
有一些假定,每个文本文件只保存一行数据,只有两个地点,自己看看吧,文件格式不正确,自己修改吧可以把指定目录内的所有txt文件,合并后保存到指定的txt文件中
package netnetjavafileutil;
import javaioBufferedReader;
import javaioFile;
import javaioFileInputStream;
import javaioFileOutputStream;
import javaioFilenameFilter;
import javaioIOException;
import javaioInputStreamReader;
import javaioPrintStream;
import javautilArrayList;
import javautilList;
/
@author HP
/
public class FileTools {
private final String aPrefix="aaaa";
private final String bPrefix="bbbb";
/
返回第一行内容
@param fname 文本文件名称
@return
@throws javaioIOException
/
private String readLineFromTxt(String fname)throws IOException {
String line; // 用来保存每行读取的内容
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fname)));
line = readerreadLine(); // 读取第一行
readerclose();
return line;
}
/
@param a
@param b
@param fname
/
private void writeToTxt(List a,List b,String fname)throws IOException {
PrintStream ps = new PrintStream(new FileOutputStream(fname));
for(int i=0;i<asize();i++)
psprintln(aget(i));
for(int i=0;i<bsize();i++)
psprintln(bget(i));
psclose();
}
/
合并指定目录内的多个文本文件
@param strPath 批量文本文件所在目录名称
@param strFile 生成的文本文件名称
@return
/
public boolean mergeFile(String strPath,String strFile){
boolean f=true;
List listA=new ArrayList();//aaaa内容
List listB=new ArrayList();//bbbb内容
File path=new File(strPath);
if(!pathexists()||!pathisDirectory()){//输入的必须是目录
f=false;
}else{
try{
String[] fname=pathlist(new FilenameFilter(){
public boolean accept(File dir, String name) {
if(name!=null&&nameendsWith("txt"))
return true;
else
return false;
}
});//获取目录内所有txt结尾的文件名字
for(int i=0;i<fnamelength;i++){
String tmp=thisreadLineFromTxt(strPath+"\\"+fname[i]);
if(tmp==null)
continue;
if(fname[i]startsWith(aPrefix)){
listAadd(aPrefix+tmp);
}else if(fname[i]startsWith(bPrefix)){
listBadd(bPrefix+tmp);
}
}
thiswriteToTxt(listA, listB, strFile);
}catch(Exception e){
eprintStackTrace();
f=false;
}
}
return f;
}
public static void main(String[] args){
FileTools ft=new FileTools();
ftmergeFile("c:\\txt", "d:\\outtxt");
}
}
判断方法如下:
获取同一文件名前缀的所有java文件,解析出其中的时间戳信息,可以使用正则表达式等方式进行解析;
2将所有java文件按照时间戳信息从大到小排序,可以使用java的Collectionssort()方法结合自定义Comparator进行排序;
3排序后,最新的java文件就位于排序结果的第一个位置。
文件属于文件的一种,与普通文件载体不同,文件是以硬盘为载体存储在计算机上的信息集合。
最长前缀
String[]data=new String[]{"这之前是前缀","这之前是前缀"};
int n=0;
int thisStr=-1;
String tag="这之前是前缀";
for(int i=0;i<datalength;i++){
int p=strindexOf(tag);
if(p>n){
thisStr=i;
n=p;
}
}
Systemoutprintln(data[thisStr]+"的前缀是最长的");
以上就是关于java方法名前注释问题全部的内容,包括:java方法名前注释问题、java 根据文件获取文件名及路径的方法、java读取多个txt文件内容,并按照文件名称排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)