Java最全文件操作实例汇总
本文实例汇总了Java文件操作。分享给大家供大家参考,具体如下:
1.创建文件夹
1
2
3
4
5
6
7
8
9
10
11
|
//import java.io.*; File myFolderPath = new File(%% 1 ); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception e) { System.out.println( "新建目录操作出错" ); e.printStackTrace(); } |
2.创建文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//import java.io.*; File myFilePath = new File(%% 1 ); try { if (!myFilePath.exists()) { myFilePath.createNewFile(); } FileWriter resultFile = new FileWriter(myFilePath); PrintWriter myFile = new PrintWriter(resultFile); myFile.println(%% 2 ); resultFile.close(); } catch (Exception e) { System.out.println( "新建文件操作出错" ); e.printStackTrace(); } |
3.删除文件
1
2
3
4
5
6
7
8
9
|
//import java.io.*; File myDelFile = new File(%% 1 ); try { myDelFile.delete(); } catch (Exception e) { System.out.println( "删除文件操作出错" ); e.printStackTrace(); } |
4.删除文件夹
1
2
3
4
5
6
7
8
9
|
//import java.io.*; File delFolderPath = new File(%% 1 ); try { delFolderPath.delete(); //删除空文件夹 } catch (Exception e) { System.out.println( "删除文件夹操作出错" ); e.printStackTrace(); } |
5.删除一个文件下夹所有的文件夹
1
2
3
4
5
6
7
8
|
//import java.io.*; File delfile= new File(%% 1 ); File[] files=delfile.listFiles(); for ( int i= 0 ;i<files.length;i++){ if (files[i].isDirectory()){ files[i].delete(); } } |
6.清空文件夹
1
2
3
4
5
6
7
8
9
10
11
12
|
//import java.io.*; File delfilefolder= new File(%% 1 ); try { if (!delfilefolder.exists()) { delfilefolder.delete(); } delfilefolder.mkdir(); } catch (Exception e) { System.out.println( "清空目录操作出错" ); e.printStackTrace(); } |
7.读取文件
1
2
3
4
5
6
7
8
9
10
11
|
//import java.io.*; // 逐行读取数据 FileReader fr = new FileReader(%% 1 ); BufferedReader br = new BufferedReader(fr); String %% 2 = br.readLine(); while (%% 2 != null ) { %% 3 %% 2 = br.readLine(); } br.close(); fr.close(); |
8.写入文件
1
2
3
4
5
6
7
8
9
10
|
//import java.io.*; // 将数据写入文件 try { FileWriter fw = new FileWriter(%% 1 ); fw.write(%% 2 ); fw.flush(); fw.close(); } catch (IOException e) { e.printStackTrace(); } |
9.写入随机文件
1
2
3
4
5
6
7
8
9
|
//import java.io.*; try { RandomAcessFile logFile= new RandomAcessFile(%% 1 , "rw" ); long lg=logFile.length(); logFile.seek(%% 2 ); logFile.writeByte(%% 3 ); } catch (IOException ioe){ System.out.println( "无法写入文件:" +ioe.getMessage()); } |
10.读取文件属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//import java.io.*; // 文件属性的取得 File af = new File(%% 1 ); if (af.exists()) { System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length()); System.out.println(f.isFile() ? "是文件" : "不是文件" ); System.out.println(f.isDirectory() ? "是目录" : "不是目录" ); System.out.println(f.canRead() ? "可读取" : "不" ); System.out.println(f.canWrite() ? "是隐藏文件" : "" ); System.out.println( "文件夹的最后修改日期为:" + new Date(f.lastModified())); } else { System.out.println(f.getName() + "的属性如下:" ); System.out.println(f.isFile() ? "是文件" : "不是文件" ); System.out.println(f.isDirectory() ? "是目录" : "不是目录" ); System.out.println(f.canRead() ? "可读取" : "不" ); System.out.println(f.canWrite() ? "是隐藏文件" : "" ); System.out.println( "文件的最后修改日期为:" + new Date(f.lastModified())); } if (f.canRead()){ %% 2 } if (f.canWrite()){ %% 3 } |
11.写入属性
1
2
3
4
5
6
7
8
|
//import java.io.*; File filereadonly= new File(%% 1 ); try { boolean b=filereadonly.setReadOnly(); } catch (Exception e) { System.out.println( "拒绝写访问:" +e.printStackTrace()); } |
12.枚举一个文件夹中的所有文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//import java.io.*; //import java.util.*; LinkedList<String> folderList = new LinkedList<String>(); folderList.add(%% 1 ); while (folderList.size() > 0 ) { File file = new File(folderList.peek()); folderList.removeLast(); File[] files = file.listFiles(); ArrayList<File> fileList = new ArrayList<File>(); for ( int i = 0 ; i < files.length; i++) { if (files[i].isDirectory()) { folderList.add(files[i].getPath()); } else { fileList.add(files[i]); } } for (File f : fileList) { %% 2 =f.getAbsoluteFile(); %% 3 } } |
13.复制文件夹
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
//import java.io.*; //import java.util.*; LinkedList<String> folderList = new LinkedList<String>(); folderList.add(%% 1 ); LinkedList<String> folderList2 = new LinkedList<String>(); folderList2.add(%% 2 + %% 1 .substring(%% 1 .lastIndexOf( "//" ))); while (folderList.size() > 0 ) { ( new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹 File folders = new File(folderList.peek()); String[] file = folders.list(); File temp = null ; try { for ( int i = 0 ; i < file.length; i++) { if (folderList.peek().endsWith(File.separator)) { temp = new File(folderList.peek() + File.separator + file[i]); } else { temp = new File(folderList.peek() + File.separator + file[i]); } if (temp.isFile()) { FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream( folderList2.peek() + File.separator + (temp.getName()).toString()); byte [] b = new byte [ 5120 ]; int len; while ((len = input.read(b)) != - 1 ) { output.write(b, 0 , len); } output.flush(); output.close(); input.close(); } if (temp.isDirectory()) { // 如果是子文件夹 for (File f : temp.listFiles()) { if (f.isDirectory()) { folderList.add(f.getPath()); folderList2.add(folderList2.peek() + File.separator + f.getName()); } } } } } catch (Exception e) { //System.out.println("复制整个文件夹内容操作出错"); e.printStackTrace(); } folderList.removeFirst(); folderList2.removeFirst(); } |
14.复制一个文件夹下所有的文件夹到另一个文件夹下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
//import java.io.*; //import java.util.*; File copyfolders= new File(%% 1 ); File[] copyfoldersList=copyfolders.listFiles(); for ( int k= 0 ;k<copyfoldersList.length;k++){ if (copyfoldersList[k].isDirectory()){ ArrayList<String>folderList= new ArrayList<String>(); folderList.add(copyfoldersList[k].getPath()); ArrayList<String>folderList2= new ArrayList<String>(); folderList2.add(%% 2 + "/" +copyfoldersList[k].getName()); for ( int j= 0 ;j<folderList.length;j++){ ( new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹 File folders= new File(folderList.get(j)); String[] file=folders.list(); File temp= null ; try { for ( int i = 0 ; i < file.length; i++) { if (folderList.get(j).endsWith(File.separator)){ temp= new File(folderList.get(j)+ "/" +file[i]); } else { temp= new File(folderList.get(j)+ "/" +File.separator+file[i]); } FileInputStream input = new FileInputStream(temp); if (temp.isFile()){ FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString()); byte [] b = new byte [ 5120 ]; int len; while ( (len = input.read(b)) != - 1 ) { output.write(b, 0 , len); } output.flush(); output.close(); input.close(); } if (temp.isDirectory()){ //如果是子文件夹 folderList.add(folderList.get(j)+ "/" +file[i]); folderList2.add(folderList2.get(j)+ "/" +file[i]); } } } catch (Exception e) { System.out.println( "复制整个文件夹内容操作出错" ); e.printStackTrace(); } } } } |
15.移动文件夹
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
//import java.io.*; //import java.util.*; LinkedList<String> folderList = new LinkedList<String>(); folderList.add(%% 1 ); LinkedList<String> folderList2 = new LinkedList<String>(); folderList2.add(%% 2 + %% 1 .substring(%% 1 .lastIndexOf( "//" ))); while (folderList.size() > 0 ) { ( new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹 File folders = new File(folderList.peek()); String[] file = folders.list(); File temp = null ; try { for ( int i = 0 ; i < file.length; i++) { if (folderList.peek().endsWith(File.separator)) { temp = new File(folderList.peek() + File.separator + file[i]); } else { temp = new File(folderList.peek() + File.separator + file[i]); } if (temp.isFile()) { FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream( folderList2.peek() + File.separator + (temp.getName()).toString()); byte [] b = new byte [ 5120 ]; int len; while ((len = input.read(b)) != - 1 ) { output.write(b, 0 , len); } output.flush(); output.close(); input.close(); if (!temp.delete()) System.out.println( "删除单个文件操作出错!" ); } if (temp.isDirectory()) { // 如果是子文件夹 for (File f : temp.listFiles()) { if (f.isDirectory()) { folderList.add(f.getPath()); folderList2.add(folderList2.peek() + File.separator + f.getName()); } } } } } catch (Exception e) { // System.out.println("复制整个文件夹内容操作出错"); e.printStackTrace(); } folderList.removeFirst(); folderList2.removeFirst(); } File f = new File(%% 1 ); if (!f.delete()) { for (File file : f.listFiles()) { if (file.list().length == 0 ) { System.out.println(file.getPath()); file.delete(); } } } |
16.移动一个文件夹下所有的文件夹到另一个目录下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
//import java.io.*; //import java.util.*; File movefolders= new File(%% 1 ); File[] movefoldersList=movefolders.listFiles(); for ( int k= 0 ;k<movefoldersList.length;k++){ if (movefoldersList[k].isDirectory()){ ArrayList<String>folderList= new ArrayList<String>(); folderList.add(movefoldersList[k].getPath()); ArrayList<String>folderList2= new ArrayList<String>(); folderList2.add(%% 2 + "/" +movefoldersList[k].getName()); for ( int j= 0 ;j<folderList.length;j++){ ( new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹 File folders= new File(folderList.get(j)); String[] file=folders.list(); File temp= null ; try { for ( int i = 0 ; i < file.length; i++) { if (folderList.get(j).endsWith(File.separator)){ temp= new File(folderList.get(j)+ "/" +file[i]); } else { temp= new File(folderList.get(j)+ "/" +File.separator+file[i]); } FileInputStream input = new FileInputStream(temp); if (temp.isFile()){ FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString()); byte [] b = new byte [ 5120 ]; int len; while ( (len = input.read(b)) != - 1 ) { output.write(b, 0 , len); } output.flush(); output.close(); input.close(); temp.delete(); } if (temp.isDirectory()){ //如果是子文件夹 folderList.add(folderList.get(j)+ "/" +file[i]); folderList2.add(folderList2.get(j)+ "/" +file[i]); } } } catch (Exception e) { System.out.println( "复制整个文件夹内容操作出错" ); e.printStackTrace(); } } movefoldersList[k].delete(); } } |
17.以一个文件夹的框架在另一个目录创建文件夹和空文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
//import java.io.*; //import java.util.*; boolean b= false ; //不创建空文件 ArrayList<String>folderList= new ArrayList<String>(); folderList.add(%% 1 ); ArrayList<String>folderList2= new ArrayList<String>(); folderList2.add(%% 2 ); for ( int j= 0 ;j<folderList.length;j++){ ( new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹 File folders= new File(folderList.get(j)); String[] file=folders.list(); File temp= null ; try { for ( int i = 0 ; i < file.length; i++) { if (folderList.get(j).endsWith(File.separator)){ temp= new File(folderList.get(j)+ "/" +file[i]); } else { temp= new File(folderList.get(j)+ "/" +File.separator+file[i]); } FileInputStream input = new FileInputStream(temp); if (temp.isFile()){ if (b) temp.createNewFile(); } if (temp.isDirectory()){ //如果是子文件夹 folderList.add(folderList.get(j)+ "/" +file[i]); folderList2.add(folderList2.get(j)+ "/" +file[i]); } } } catch (Exception e) { System.out.println( "复制整个文件夹内容操作出错" ); e.printStackTrace(); } } |
18.复制文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
//import java.io.*; int bytesum = 0 ; int byteread = 0 ; File oldfile = new File(%% 1 ); try { if (oldfile.exists()) { //文件存在时 FileInputStream inStream = new FileInputStream(oldfile); //读入原文件 FileOutputStream fs = new FileOutputStream( new File(%% 2 ,oldfile.getName())); byte [] buffer = new byte [ 5120 ]; int length; while ( (byteread = inStream.read(buffer)) != - 1 ) { bytesum += byteread; //字节数 文件大小 System.out.println(bytesum); fs.write(buffer, 0 , byteread); } inStream.close(); } } catch (Exception e) { System.out.println( "复制单个文件操作出错" ); e.printStackTrace(); } |
19.复制一个文件夹下所有的文件到另一个目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//import java.io.*; File copyfiles= new File(%% 1 ); File[] files=copyfiles.listFiles(); for ( int i= 0 ;i<files.length;i++){ if (!files[i].isDirectory()){ int bytesum = 0 ; int byteread = 0 ; try { InputStream inStream = new FileInputStream(files[i]); //读入原文件 FileOutputStream fs = new FileOutputStream( new File(%% 2 ,files[i].getName()); byte [] buffer = new byte [ 5120 ]; int length; while ( (byteread = inStream.read(buffer)) != - 1 ) { bytesum += byteread; //字节数 文件大小 System.out.println(bytesum); fs.write(buffer, 0 , byteread); } inStream.close(); } catch (Exception e) { System.out.println( "复制单个文件操作出错" ); e.printStackTrace(); } } } |
20.提取扩展名
21.提取文件名
22.提取文件路径
23.替换扩展名
1
2
3
|
//import java.io.*; File replaceExt= new File(%% 1 ); replaceExt.renameTo(replaceExt.getName().split( "." )[ 0 ]+ "." +%% 2 ); |
24.追加路径
1
2
|
final String path=%% 1 .endsWith( "//" )?%% 1 :%% 1 + "//" ; %% 3 =path+%% 2 ; |
25.移动文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
//import java.io.*; int bytesum = 0 ; int byteread = 0 ; File oldfile = new File(%% 1 ); try { if (oldfile.exists()) { //文件存在时 InputStream inStream = new FileInputStream(oldfile); //读入原文件 FileOutputStream fs = new FileOutputStream( new File(%% 2 ,oldfile.getName())); byte [] buffer = new byte [ 5120 ]; int length; while ( (byteread = inStream.read(buffer)) != - 1 ) { bytesum += byteread; //字节数 文件大小 //System.out.println(bytesum); fs.write(buffer, 0 , byteread); } inStream.close(); oldfile.delete(); } } catch (Exception e) { System.out.println( "复制单个文件操作出错" ); e.printStackTrace(); } |
26.移动一个文件夹下所有文件到另一个目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
//import java.io.*; File movefile= new File(%% 1 ); File[] movefiles=movefile.listFiles(); for ( int i= 0 ;i<movefiles.length;i++){ if (movefiles[i].isFile()){ int bytesum = 0 ; int byteread = 0 ; File oldfile = new File(movefiles[i]); try { if (oldfile.exists()) { //文件存在时 InputStream inStream = new FileInputStream(oldfile); //读入原文件 FileOutputStream fs = new FileOutputStream( new File(%% 2 ,oldfile.getName())); byte [] buffer = new byte [ 5120 ]; int length; while ( (byteread = inStream.read(buffer)) != - 1 ) { bytesum += byteread; //字节数 文件大小 //System.out.println(bytesum); fs.write(buffer, 0 , byteread); } inStream.close(); oldfile.delete(); } } catch (Exception e) { System.out.println( "复制单个文件操作出错" ); e.printStackTrace(); } } } |
27.指定目录下搜索文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//import java.io.*; String filter= "*.*" ; String path=%% 1 ; File file = new File(path); if (file.exists()) { if (file.isDirectory()) { File[] fileArray = file.listFiles(); for (File f:fileArray) { if (f.isDirectory()) { doSearch(filter,f.getPath()); } else { if (f.getName().indexOf(filter) >= 0 ) { countFiles++; result.append(f.getPath() + "/r/n" ); } } statusShow1.setText(f.getPath()); } statusShow2.setText( "The numbers of files had been found:" + countFiles); } else { System.out.println( "Couldn't open the path!" ); } } else { System.out.println( "The path had been apointed was not Exist!" ); } |
28.打开对话框
1
2
3
4
5
6
|
//import java.io.*; //import javax.swing.*; JFileChooser Jfc = new JFileChooser(); //建立选择档案对话方块盒 Jfc if (Jfc.isFileSelectionEnabled()) { File %% 1 = Jfc.getSelectedFile(); } |
29.文件分割
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//import java.io.* try { File f= new File(%% 1 ); FileInputStream fileInputStream = new FileInputStream(f); byte [] buffer = new byte [fileInputStream.available()]; FileInputStream.read(buffer); fileInputStream.close(); String strFileName = f.getName(); FileOutputStream fileOutputStream = new FileOutputStream( new File(%% 2 + "//" + strFileName + "1" )); fileOutputStream.write(buffer, 0 ,buffer.length/ 2 ); fileOutputStream.close(); fileOutputStream = new FileOutputStream( new File(%% 2 + "//" + strFileName + "2" )); fileOutputStream.write(buffer, buffer.length/ 2 , buffer.length-buffer.length/ 2 ); fileOutputStream.close(); } catch (ArrayIndexOutOfBoundsException e) { System.out.print( "using FileStreamDemo src des" ); e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } |
30.文件合并
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//import java.io.* String strFileName = %% 1 .substring(%% 1 .LastIndexOf( "//" ) + 1 ); try { FileInputStream fileInputStream1 = new FileInputStream( new File(%% 2 + strFileName + "1" )); FileInputStream fileInputStream2 = new FileInputStream( new File(%% 2 + strFileName + "2" )); byte [] buffer = new byte [fileInputStream1.available()+fileInputStream2.available()]; FileInputStream.read(buffer, 0 , fileInputStream1.available()); FileInputStream2.read(buffer, fileInputStream1.available(), fileInputStream2.available()); fileInputStream.close(); fileInputStream2.close(); FileOutputStream fileOutputStream = new FileOutputStream( new File(%% 2 + "//" + strFileName)); fileOutputStream.write(buffer, 0 ,buffer.length); fileOutputStream.close(); catch (IOException e){ e.printStackTrace(); } |
31.文件简单加密
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//import java.io.* try { File f= new File(( new File(%% 1 )).getPath()+ "//enc_" +( new File(%% 1 )).getName().split( "//" )[ 1 ]); String strFileName = f.getName(); FileInputStream fileInputStream = new FileInputStream(%% 2 + "//" +strFilename); byte [] buffer = new byte [fileInputStream.available()]; FileInputStream.read(buffer); fileInputStream.close(); for ( int i= 0 ;i<buffer.length;i++) { int ibt=buffer[i]; ibt+= 100 ; ibt%= 256 ; buffer[i]=( byte )ibt; } FileOutputStream fileOutputStream = new FileOutputStream(f); fileOutputStream.write(buffer, 0 ,buffer.length); fileOutputStream.close(); } catch (ArrayIndexOutOfBoundException e){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } |
32.文件简单解密
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
//import java.io.* try { File f= new File(%% 1 ); String strFileName = f.getName(); FileInputStream fileInputStream = new FileInputStream(%% 2 + "//enc_" +strFilename); byte [] buffer = new byte [fileInputStream.available()]; FileInputStream.read(buffer); fileInputStream.close(); for ( int i= 0 ;i<buffer.length;i++) { int ibt=buffer[i]; ibt-= 100 ; ibt+= 256 ; ibt%= 256 ; buffer[i]=( byte )ibt; } FileOutputStream fileOutputStream = new FileOutputStream(f); fileOutputStream.write(buffer, 0 ,buffer.length); fileOutputStream.close(); } catch (ArrayIndexOutOfBoundException e){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } |
33.写入ini文件属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
//import java.io.*; //import java.util.*; //import java.util.regex.*; if (configMap == null ) { String WriteBuffer = "" ; configMap = new HashMap<String, Serializable>(); String strLine = null ; String currentNode = null ; String previousNode = null ; Vector<Properties> vec = new Vector<Properties>(); int row = 0 ; FileReader fileReader = null ; try { fileReader = new FileReader( "Config.ini" ); } catch (FileNotFoundException e1) { e1.printStackTrace(); } BufferedReader bufferedReader = new BufferedReader(fileReader); try { while ((strLine = bufferedReader.readLine()) != null ) { String oneLine = strLine.trim(); if (oneLine.length() >= 1 ) { Pattern p = Pattern.compile( "//[//s*.*//s*//]" ); int nodelen = oneLine.split( "[;]" ).length; String[] strArray1 = new String[ 4 ]; if (nodelen == 1 ) { oneLine = oneLine.split( "[;]" )[ 0 ].trim(); } else if (nodelen == 2 ) { strArray1[ 3 ] = oneLine.split( "[;]" )[ 1 ].trim(); oneLine = oneLine.split( "[;]" )[ 0 ].trim(); } Matcher m = p.matcher(oneLine); if (m.matches()) { strArray1[ 0 ] = "@Node" ; strArray1[ 1 ] = oneLine; strArray1[ 2 ] = "" ; } else { int keylen = oneLine.split( "=" ).length; if (keylen == 1 ) { strArray1[ 0 ] = "@Key" ; strArray1[ 1 ] = oneLine.split( "=" )[ 0 ]; strArray1[ 2 ] = "" ; } else if (keylen == 2 ) { strArray1[ 0 ] = "@Key" ; strArray1[ 1 ] = oneLine.split( "=" )[ 0 ]; strArray1[ 2 ] = oneLine.split( "=" )[ 1 ]; } else { strArray1[ 0 ] = "@ElementError" ; strArray1[ 1 ] = "" ; strArray1[ 2 ] = "" ; strArray1[ 3 ] = "" ; } } if (strArray1[ 0 ].equals( "@Node" )) { previousNode = currentNode; currentNode = strArray1[ 1 ]; if (row > 0 ) { configMap.put(previousNode, vec.elementAt( 0 )); vec.clear(); row = 0 ; } WriteBuffer += (oneLine + "/r/n" ); } else if (strArray1[ 0 ].equals( "@Key" ) && row == 0 ) { Properties ht = new Properties(); ht.setProperty(strArray1[ 1 ], strArray1[ 2 ]); if (strArray1[ 1 ].equals(%% 1 )) { WriteBuffer += (%% 1 + "=" + %% 2 + "/r/n" ); } else WriteBuffer += (oneLine + "/r/n" ); vec.add( 0 , ht); row++; } else if (strArray1[ 0 ].equals( "@Key" ) && row > 0 ) { Properties ht2 = new Properties(); ht2.put(strArray1[ 1 ], strArray1[ 2 ]); vec.clear(); vec.add( 0 , ht2); WriteBuffer += (oneLine + "/r/n" ); row++; } } } configMap.put(currentNode, vec.elementAt( 0 )); } catch (FileNotFoundException e) { configMap = null ; e.printStackTrace(); } catch (IOException e) { configMap = null ; e.printStackTrace(); } finally { vec.clear(); try { bufferedReader.close(); fileReader.close(); } catch (IOException e) { e.printStackTrace(); } try { FileWriter fw = new FileWriter( "Config.ini" ); fw.write(WriteBuffer); fw.flush(); fw.close(); } catch (IOException e) { e.printStackTrace(); } } } |
34.读取ini文件属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
//import java.io.*; //import java.util.*; //import java.util.regex.*; //private HashMap configMap=null; private Map<String, Serializable> configMap= null ; String %% 2 = null ; if (configMap == null ) { configMap = new HashMap<String, Serializable>(); String strLine = null ; String currentNode = null ; String previousNode = null ; Vector<Properties> vec = new Vector<Properties>(); int row = 0 ; FileReader fileReader = null ; try { fileReader = new FileReader( "Config.ini" ); } catch (FileNotFoundException e1) { e1.printStackTrace(); } BufferedReader bufferedReader = new BufferedReader(fileReader); try { while ((strLine = bufferedReader.readLine()) != null ) { String oneLine = strLine.trim(); if (oneLine.length() >= 1 ) { Pattern p = Pattern.compile( "//[//s*.*//s*//]" ); int nodelen = oneLine.split( "[;]" ).length; String[] strArray1 = new String[ 4 ]; if (nodelen == 1 ) { oneLine = oneLine.split( "[;]" )[ 0 ].trim(); } else if (nodelen == 2 ) { strArray1[ 3 ] = oneLine.split( "[;]" )[ 1 ].trim(); oneLine = oneLine.split( "[;]" )[ 0 ].trim(); } Matcher m = p.matcher(oneLine); if (m.matches()) { strArray1[ 0 ] = "@Node" ; strArray1[ 1 ] = oneLine; strArray1[ 2 ] = "" ; } else { int keylen = oneLine.split( "=" ).length; if (keylen == 1 ) { strArray1[ 0 ] = "@Key" ; strArray1[ 1 ] = oneLine.split( "=" )[ 0 ]; strArray1[ 2 ] = "" ; } else if (keylen == 2 ) { strArray1[ 0 ] = "@Key" ; strArray1[ 1 ] = oneLine.split( "=" )[ 0 ]; strArray1[ 2 ] = oneLine.split( "=" )[ 1 ]; } else { strArray1[ 0 ] = "@ElementError" ; strArray1[ 1 ] = "" ; strArray1[ 2 ] = "" ; strArray1[ 3 ] = "" ; } } if (strArray1[ 0 ].equals( "@Node" )) { previousNode = currentNode; currentNode = strArray1[ 1 ]; if (row > 0 ) { configMap.put(previousNode, vec.elementAt( 0 )); vec.clear(); row = 0 ; } } else if (strArray1[ 0 ].equals( "@Key" ) && row == 0 ) { Properties ht = new Properties(); ht.setProperty(strArray1[ 1 ], strArray1[ 2 ]); if (strArray1[ 1 ].equals(%% 1 )) { %% 2 =strArray1[ 2 ]; return ; } vec.add( 0 , ht); row++; } else if (strArray1[ 0 ].equals( "@Key" ) && row > 0 ) { Properties ht2 = new Properties(); ht2.put(strArray1[ 1 ], strArray1[ 2 ]); vec.clear(); vec.add( 0 , ht2); row++; } } } configMap.put(currentNode, vec.elementAt( 0 )); } catch (FileNotFoundException e) { configMap = null ; e.printStackTrace(); } catch (IOException e) { configMap = null ; e.printStackTrace(); } finally { vec.clear(); try { bufferedReader.close(); fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } } |
35.合并一个文件下所有的文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
File combinefiles= new File(%% 1 ); File[] files=combinefiles.listFiles(); FileOutputStream fs; try { fs= new FileOutputStream( new File(%% 2 )); } catch (IOException e){ e.printStackTrace(); } for ( int i= 0 ;i<files.length;i++){ if (files[i].isFile()){ int bytesum= 0 ; int byteread= 0 ; try { FileInputStream inStream= new FileInputStream(files[i]); byte [] buffer = new byte [ 5120 ]; int length; while ((byteread=inStream.read(buffer))!=- 1 ){ bytesum+=byteread; fs.write(buffer, 0 ,byteread); } inStream.close(); } catch (Exception e){ //复制文件出错 e.printStackTrace(); } } } try { fs.close(); } catch (IOException e){ { e.printStackTrace(); } |
36.写入ini文件属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
//import java.io.*; //import java.util.*; //import java.util.regex.*; //private HashMap configMap=null; private Map<String, Serializable> configMap= null ; if (configMap== null ) { String strLine= null ; String currentNode= null ; String previousNode= null ; Vector<Properties> vec= new Vector<Properties>(); int row= 0 ; FileReader fileReader = null ; try { fileReader = new FileReader(%% 1 ); } catch (FileNotFoundException e1) { e1.printStackTrace(); } BufferedReader bufferedReader= new BufferedReader(fileReader); try { while ((strLine=bufferedReader.readLine())!= null ) { String oneLine=strLine.trim(); if (oneLine.length()>= 1 ) { Pattern p=Pattern.compile( "//[//s*.*//s*//]" ); int nodelen=oneLine.split( "[;]" ).length; String[] strArray1= new String[ 4 ]; if (nodelen== 1 ) { oneLine=oneLine.split( "[;]" )[ 0 ].trim(); } else if (nodelen== 2 ) { strArray1[ 3 ]=oneLine.split( "[;]" )[ 1 ].trim(); oneLine=oneLine.split( "[;]" )[ 0 ].trim(); } Matcher m=p.matcher(oneLine); if (m.matches()) { strArray1[ 0 ]= "@Node" ; strArray1[ 1 ]=oneLine; strArray1[ 2 ]= "" ; } else { int keylen=oneLine.split( "=" ).length; if (keylen== 1 ) { strArray1[ 0 ]= "@Key" ; strArray1[ 1 ]=oneLine.split( "=" )[ 0 ]; strArray1[ 2 ]= "" ; } else if (keylen== 2 ) { strArray1[ 0 ]= "@Key" ; strArray1[ 1 ]=oneLine.split( "=" )[ 0 ]; strArray1[ 2 ]=oneLine.split( "=" )[ 1 ]; } else { strArray1[ 0 ]= "@ElementError" ; strArray1[ 1 ]= "" ; strArray1[ 2 ]= "" ; strArray1[ 3 ]= "" ; } } if (strArray1[ 0 ].equals( "@Node" )) { previousNode=currentNode; currentNode=strArray1[ 1 ]; if (row> 0 ) { configMap.put(previousNode,vec.elementAt( 0 )); //"size:"+configMap.size() vec.clear(); row= 0 ; } } else if (strArray1[ 0 ].equals( "@Key" ) && row== 0 ) { Properties ht= new Properties(); ht.setProperty(strArray1[ 1 ],strArray1[ 2 ]); vec.add( 0 ,ht); row++; } else if (strArray1[ 0 ].equals( "@Key" ) && row> 0 ) { Properties ht2= new Properties(); ht2.put(strArray1[ 1 ],strArray1[ 2 ]); vec.clear(); vec.add( 0 ,ht2); row++; } } } configMap.put(currentNode,vec.elementAt( 0 )); } catch (FileNotFoundException e) { configMap= null ; e.printStackTrace(); } catch (IOException e) { configMap= null ; e.printStackTrace(); } finally { vec.clear(); try { bufferedReader.close(); fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } } String nodeKey= "[" +%% 2 + "]" ; Properties ht= null ; if (configMap.containsKey(nodeKey)) { ht=(Properties)configMap.get(nodeKey); } else { ht=(Properties)configMap.put(nodeKey,%% 3 ); } try { ht.setProperty(%% 3 ,%% 4 ); } catch (NullPointException e) { e.printStackTrace(); } FileWriter fw= null ; BufferedWriter bw= null ; try { fw = new FileWriter(%% 1 ); bw= new BufferedWriter(fw); } catch (IOException e) { e.printStackTrace(); } Set keys=configMap.keySet(); Iterator ite=keys.iterator(); while (ite.hasNext()) { String oneKey=(String)ite.next(); try { bw.write(oneKey+ "/n" ); } catch (IOException e) { e.printStackTrace(); } ht=(Properties)configMap.get(oneKey); ht.list( new PrintWriter(bw, true )); } |
37.获得当前路径
38.读取XML数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
//import java.io.*; //import javax.xml.parsers.*; //import org.xml.sax.*; //import org.w3c.dom.*; private Document document; File xml_file= new File(%% 1 ); DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder=factory.newDocumentBuilder(); document=builder.parse(xml_file); } catch (Exception e) { e.printStackTrace(); } String subNodeTag=%% 2 ; Element rootNode=document.getDocumentElement(); //%%2="serverList" //%%4="id" //%%6="port" //%%3="server" //%%5="ipaddr" NodeList nlist=rootNode.getElementsByTagName(subNodeTag); int len=nlist.getLength(); Node x= null ; for ( int i= 0 ;i<len;i++) { x=nlist.item(i); String getNodeAttrValue= null ; NamedNodeMap attrList=node.getAttributes(); for ( int j= 0 ;j<attrList.getLength();j++) { if (attrList.item(j).getNodeName().compareTo(%% 7 )== 0 ) { getNodeAttrValue=attrList.item(j).getNodeValue(); break ; } } if (getNodeAttrValue.compareTo(%% 8 )== 0 ) break ; } String %% 9 = null ; if (x!= null ) { NodeList nlist=node.getChildNodes(); int len=nlist.getLength(); Node currentNode; String nodeName; for ( int i= 0 ;i<len;i++) { currentNode=nlist.item(i); nodeName=currentNode.getNodeName(); if (nodeName.equals(%% 5 )== 0 ) { %% 9 =document.getElementValue(currentNode); break ; } } } |
39.写入XML数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
//import java.io.*; //import javax.xml.parsers.*; //import org.xml.sax.*; //import org.w3c.dom.*; //import javax.xml.transform.*; //import javax.xml.transform.dom.*; //import javax.xml.transform.stream.*; private Document document; private Element node; File xml_file= new File(%% 1 ); DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder=factory.newDocumentBuilder(); document=builder.parse(xml_file); } catch (Exception e) { e.printStackTrace(); } String subNodeTag=%% 2 ; Element rootNode=document.getDocumentElement(); //%%2="serverList" //%%4="id" //%%6="port" //%%3="server" //%%5="ipaddr" NodeList nlist=rootNode.getElementByTagName(subNodeTag); node=document.createElement(%% 3 ); node.setAttribute(%% 4 ,nlist.getLength()+ 1 ).toString()); node.appendChild(document.createTextNode( "/n" ); Element ipNode=document.createElement(%% 5 ); ipNode.appendChild(document.createTextNode(%% 8 )); node.appendChild(ipNode); node.appendChild(document,createTextNode( "/n" ); Element port=document.createElement(%% 6 ); port.appendChild(document.createTextNode(%% 9 )); node.appendChild(port); node.appendChild(document,createTextNode( "/n" ); nlist.appendChild(node); TransformerFactory tFactory=TransformerFactory.newInstance(); Transformer transformer= null ; try { transformer=tFactory.newTransformer(); DOMSource source= new DOMSource(document); StreamResult result= new StreamResult(xml_file); transformer.transform(source,result); } catch (Exception e) { e.printStackTrace(); } |
40.ZIP压缩文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//import java.io.*; //import java.util.zip.*; //创建文件输入流对象 FileInputStream fis= new FileInputStream(%% 1 ); //创建文件输出流对象 FileOutputStream fos= new FileOutputStream(%% 2 ); //创建ZIP数据输出流对象 ZipOutputStream zipOut= new ZipOutputStream(fos); //创建指向压缩原始文件的入口 ZipEntry entry= new ZipEntry(args[ 0 ]); zipOut.putNextEntry(entry); //向压缩文件中输出数据 int nNumber; byte [] buffer= new byte [ 1024 ]; while ((nNumber=fis.read(buffer))!=- 1 ) zipOut.write(buffer, 0 ,nNumber); //关闭创建的流对象 zipOut.close(); fos.close(); fis.close(); } catch (IOException e) { System.out.println(e); } |
41.获得应用程序完整路径
42.ZIP解压缩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
//import java.io.*; //import java.util.zip.*; try { //创建文件输入流对象实例 FileInputStream fis= new FileInputStream(%% 1 ); //创建ZIP压缩格式输入流对象实例 ZipInputStream zipin= new ZipInputStream(fis); //创建文件输出流对象实例 FileOutputStream fos= new FileOutputStream(%% 2 ); //获取Entry对象实例 ZipEntry entry=zipin.getNextEntry(); byte [] buffer= new byte [ 1024 ]; int nNumber; while ((nNumber=zipin.read(buffer, 0 ,buffer.length))!=- 1 ) fos.write(buffer, 0 ,nNumber); //关闭文件流对象 zipin.close(); fos.close(); fis.close(); } catch (IOException e) { System.out.println(e); } |
43.递归删除目录中的文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//import java.io.*; //import java.util.*; ArrayList<String> folderList = new ArrayList<String>(); folderList.add(%% 1 ); for ( int j = 0 ; j < folderList.size(); j++) { File file = new File(folderList.get(j)); File[] files = file.listFiles(); ArrayList<File> fileList = new ArrayList<File>(); for ( int i = 0 ; i < files.length; i++) { if (files[i].isDirectory()) { folderList.add(files[i].getPath()); } else { fileList.add(files[i]); } } for (File f : fileList) { f.delete(); } } |
43.ZIP压缩文件夹
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
//import java.io.*; //import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载 //import java.util.zip.*; try { String zipFileName = %% 2 ; //打包后文件名字 File f= new File(%% 1 ); ZipOutputStream out = new ZipOutputStream( new FileOutputStream(zipFileName)); String base= "" ; if (f.isDirectory()) { File[] fl = f.listFiles(); out.putNextEntry( new org.apache.tools.zip.ZipEntry(base + "/" )); base = base.length() == 0 ? "" : base + "/" ; for ( int i = 0 ; i < fl.length; i++) { zip(out, fl[i], base + fl[i].getName()); } } else { out.putNextEntry( new org.apache.tools.zip.ZipEntry(base)); FileInputStream in = new FileInputStream(f); int b; while ( (b = in.read()) != - 1 ) { out.write(b); } in.close(); } out.close(); } catch (Exception ex) { ex.printStackTrace(); } |
44.Java验证DTD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//import java.io.*; //import javax.xml.parsers.*; //import org.xml.sax.*; //import org.w3c.dom.*; try { InputStream in= new FileInputStream(filePath); SAXReader saxReader = new SAXReader(); this .document = saxReader.read(in); DocumentBuilderFactory factory = null ; factory = DocumentBuilderFactory.newInstance(); //进行dtd检查 factory.setValidating( true ); } catch (Exception e) { } |
45.验证Schema
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
//import java.io.*; //import javax.xml.parsers.*; //import org.xml.sax.*; //import org.w3c.dom.*; try { //创建默认的XML错误处理器 XMLErrorHandler errorHandler = new XMLErrorHandler(); //获取基于 SAX 的解析器的实例 SAXParserFactory factory = SAXParserFactory.newInstance(); //解析器在解析时验证 XML 内容。 factory.setValidating( true ); //指定由此代码生成的解析器将提供对 XML 名称空间的支持。 factory.setNamespaceAware( true ); //使用当前配置的工厂参数创建 SAXParser 的一个新实例。 SAXParser parser = factory.newSAXParser(); //创建一个读取工具 SAXReader xmlReader = new SAXReader(); //获取要校验xml文档实例 Document xmlDocument = (Document) xmlReader.read( new File(xmlFileName)); //设置 XMLReader 的基础实现中的特定属性。核心功能和属性列表可以在 http://sax.sourceforge.net/?selected=get-set 中找到。 parser.setProperty( parser.setProperty( / "file:/" + xsdFileName); //创建一个SAXValidator校验工具,并设置校验工具的属性 SAXValidator validator = new SAXValidator(parser.getXMLReader()); //设置校验工具的错误处理器,当发生错误时,可以从处理器对象中得到错误信息。 validator.setErrorHandler(errorHandler); //校验 validator.validate(xmlDocument); XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint()); //如果错误信息不为空,说明校验失败,打印错误信息 if (errorHandler.getErrors().hasContent()) { System.out.println(/ "XML文件通过XSD文件校验失败!/" ); writer.write(errorHandler.getErrors()); } else { System.out.println(/ "Good! XML文件通过XSD文件校验成功!/" ); } } catch (Exception ex) { System.out.println(/ "XML文件: /" + xmlFileName + / " 通过XSD文件:/" + xsdFileName + / "检验失败。/n原因: /" + ex.getMessage ()); ex.printStackTrace(); } } |
46.Grep
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
//import java.util.regex.*; //import java.io.*; /** * Simple implementation of the ubiquitous grep command. * First argument is the regular expression to search for (remember to * quote and/or escape as appropriate). All following arguments are * filenames to read and search for the regular expression. * * Created: April, 2002 * @author Ron Hitchens (ron@ronsoft.com) * @version $Id: SimpleGrep.java,v 1.1 2002/05/07 02:21:08 ron Exp $ */ public static void main (String [] argv) throws Exception { if (argv.length < 2 ) { // 如果参数行没有输入参数,结束程序 System.out.println ( "Usage: regex file [ ... ]" ); return ; } Pattern pattern = Pattern.compile (argv [ 0 ]); // 第一个参数为需要匹配的字符串 Matcher matcher = pattern.matcher ( "" ); // 一次读取各个文件 for ( int i = 1 ; i < argv.length; i++) { String file = argv [i]; // 第2个参数开始,均为文件名。 BufferedReader br = null ; String line; try { br = new BufferedReader ( new FileReader (file)); // 打开文件 } catch (IOException e) { // 没有打开文件,则产生异常 System.err.println ( "Cannot read '" + file + "': " + e.getMessage()); continue ; } while ((line = br.readLine()) != null ) { // 读入一行,直到文件结束 matcher.reset (line); // 匹配字符串 if (matcher.find()) { // 如果有匹配的字符串,则输出 System.out.println (file + ": " + line); } } br.close(); // 关闭文件 } } |
47.直接创建多级目录
1
2
3
|
//import java.io.*; File f= new File(%% 1 ); f.mkdirs(); |
48.批量重命名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//import java.io.*; File target = new File( "%%1" ); String[] files = target.list(); File f = null ; String filename = null ; for (String file : files) { f = new File(fl, file); filename = f.getName(); if (filename.substring(filename.lastIndexOf ( "." )).equalsIgnoreCase( "%%2" )) { f.renameTo( new File(target.getAbsolutePath(), filename.replace( "%%2" , "%%3" ))); // 这里可以反复使用replace替换,当然也可以使用正则表达式来 //替换了 ".txt" ".bat" } } |
49.文本查找替换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//import java.nio.*; String s1=%% 1 ; String s2=%% 2 ; String s3=%% 3 ; int pos=%% 4 ; /*变量i和j分别表示主串和模式串中当前字符串的位置,k表示匹配次数*/ int i,j,k=0; i = pos; j = 0; //将s1转化成StringBuffer型进行操作 repStr = new StringBuffer(s1); while(i<repStr.length()&&j<s2.length()) { if(repStr.charAt(i) == s2.charAt(j)) { ++i; ++j; if(j==s2.length()) { /*j=s2.length()表示字符串匹配成功,匹配次数加1,此外对主串进行字符串替换*/ k = k+ 1 ; repStr.replace(i-j,i,s3); //将j进行重新赋值开始新的比较 j = 0 ; } } else {i = i-j+ 1 ; j = 0 ;} } return k; |
50.文件关联
1
2
3
4
5
6
|
//import java.io.*; try { Runtime.getRuntime().exec(%% 1 ); //"assoc .txt =mynote" "assoc [.ext[=[filetype]]]" } catch (IOException e) { e.printStackTrace(); } |
52.设置JDK环境变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
@echo off IF EXIST % 1 /bin/java.exe ( rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量 @setx JAVA_HOME % 1 @setx path %path%;%JAVA_HOME%/bin @setx classpath %classpath%;. @setx classpath %classpath%;%JAVA_HOME%/lib/tools.jar @setx classpath %classpath%;%JAVA_HOME%/lib/dt.jar @setx classpath %classpath%;%JAVA_HOME%/jre/lib/rt.jar @echo on @echo Java 2 SDK 环境参数设置完毕,正常退出。 ) ELSE ( IF "%1" == "" ( rem 如没有提供安装目录,提示之后退出 @echo on @echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。 ) ELSE ( rem 如果提供非空的安装目录但没有bin/java.exe,则指定的目录为错误的目录 @echo on @echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。 ) ) //import ca.beq.util.win32.registry.*; //import java.util.*; |
1.打开键
1
2
|
RegistryKey r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE, "SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//Shell Folders" ); |
2.添加键
1
2
3
|
RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software //BEQ Technologies"); r.create(); |
3.写入字符串值
1
2
3
|
RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software//BEQ Technologies" ); RegistryValue v = new RegistryValue( "myVal" , ValueType.REG_SZ, "data" ); r.setValue(v); |
4.获取DWORD值
1
2
3
4
5
|
RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software//BEQ Technologies" ); if (r.hasValue( "myValue" )) { RegistryValue v = r.getValue( "myValue" ); v.setType(ValueType.REG_DWORD); } // if |
53.选择文件夹对话框
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/* import java.io.*; import javax.swing.*; */ JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory( new File( "." )); chooser.setFileFilter( new javax.swing.filechooser.FileFilter() { public boolean accept(File f) { return f.getName().toLowerCase().endsWith( ".gif" ) || f.isDirectory(); } public String getDescription() { return "GIF Images" ; } }); int r = chooser.showOpenDialog( null ); if (r == JFileChooser.APPROVE_OPTION) { String name = chooser.getSelectedFile().getPath(); // label.setIcon(new ImageIcon(name)); } |
54.删除空文件夹
1
2
3
4
5
6
7
8
9
10
|
//import java.io.*; File f= new File(%% 1 ); if (isFolerNull(f)) { for (File file :f.listFiles()) { if (file.list().length == 0 ) { System.out.println(file.getPath()); file.delete(); } } } |
55.发送数据到剪贴板
1
2
3
4
5
|
//import java.awt.*; //import java.awt.datatransfer.*; Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable tText = new StringSelection(%% 1 ); clipboard.setContents(tText, null ); |
56.从剪贴板中取数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//import java.awt.*; //import java.awt.datatransfer.*; // 取得系统剪贴板里可传输的数据构造的Java对象 Transferable t = Toolkit.getDefaultToolkit() .getSystemClipboard().getContents( null ); try { if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) { // 因为原系的剪贴板里有多种信息, 如文字, 图片, 文件等 // 先判断开始取得的可传输的数据是不是文字, 如果是, 取得这些文字 String s = (String) t .getTransferData(DataFlavor.stringFlavor); // 同样, 因为Transferable中的DataFlavor是多种类型的, // 所以传入DataFlavor这个参数, 指定要取得哪种类型的Data. System.out.println(s); } } catch (UnsupportedFlavorException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } |
57.获取文件路径的父路径
58.创建快捷方式
1
2
3
4
5
6
7
8
9
|
//import java.io.*; try { PrintWriter pw= new PrintWriter( new FileOutputStream( "C:/a.bat" )); pw.println(%% 1 ); "C:/a.txt" pw.close(); } catch (IOException e){ e.printStackTrace(); } |
59.弹出快捷菜单
1
2
3
|
//MouseEvent e JPopupMenu jpm= new JPopupMenu(); show(jpm,x,y); |
60.文件夹复制到整合操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ JFileChooser Jfc = new JFileChooser( "请选择源路径" ); // 建立选择档案对话 //方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 1 = Jfc.getSelectedFile().getParent(); Jfc = new JFileChooser( "请选择目标路径" ); // 建立选择档案对话方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 2 = Jfc.getSelectedFile().getParent(); LinkedList<String> folderList = new LinkedList<String>(); folderList.add(%% 1 ); LinkedList<String> folderList2 = new LinkedList<String>(); folderList2.add(%% 2 + %% 1 .substring(%% 1 .lastIndexOf( "//" ))); while (folderList.size() > 0 ) { ( new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹 File folders = new File(folderList.peek()); String[] file = folders.list(); File temp = null ; try { for ( int i = 0 ; i < file.length; i++) { if (folderList.peek().endsWith(File.separator)) { temp = new File(folderList.peek() + File.separator + file[i]); } else { temp = new File(folderList.peek() + File.separator + file[i]); } if (temp.isFile()) { FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream( folderList2.peek() + File.separator + (temp.getName()).toString()); byte [] b = new byte [ 5120 ]; int len; while ((len = input.read(b)) != - 1 ) { output.write(b, 0 , len); } output.flush(); output.close(); input.close(); } if (temp.isDirectory()) { // 如果是子文件夹 for (File f : temp.listFiles()) { if (f.isDirectory()) { folderList.add(f.getPath()); folderList2.add(folderList2.peek() + File.separator + f.getName()); } } } } } catch (Exception e) { //System.out.println("复制整个文件夹内容操作出错"); e.printStackTrace(); } folderList.removeFirst(); folderList2.removeFirst(); } |
61.文件夹移动到整合操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ JFileChooser Jfc = new JFileChooser( "请选择源路径" ); // 建立选择档案对话 //方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 1 = Jfc.getSelectedFile().getParent(); Jfc = new JFileChooser( "请选择目标路径" ); // 建立选择档案对话方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 2 = Jfc.getSelectedFile().getParent(); |
62.目录下所有文件夹复制到整合操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ JFileChooser Jfc = new JFileChooser( "请选择源路径" ); // 建立选择档案对话 //方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 1 = Jfc.getSelectedFile().getParent(); Jfc = new JFileChooser( "请选择目标路径" ); // 建立选择档案对话方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 2 = Jfc.getSelectedFile().getParent(); |
63.目录下所有文件夹移动到整合操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ JFileChooser Jfc = new JFileChooser( "请选择源路径" ); // 建立选择档案对话 //方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 1 = Jfc.getSelectedFile().getParent(); Jfc = new JFileChooser( "请选择目标路径" ); // 建立选择档案对话方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 2 = Jfc.getSelectedFile().getParent(); |
64.目录下所有文件复制到整合操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ JFileChooser Jfc = new JFileChooser( "请选择源路径" ); // 建立选择档案对话 //方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 1 = Jfc.getSelectedFile().getParent(); Jfc = new JFileChooser( "请选择目标路径" ); // 建立选择档案对话方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 2 = Jfc.getSelectedFile().getParent(); |
65.目录下所有文件移动到整合操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ JFileChooser Jfc = new JFileChooser( "请选择源路径" ); // 建立选择档案对话 //方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 1 = Jfc.getSelectedFile().getParent(); Jfc = new JFileChooser( "请选择目标路径" ); // 建立选择档案对话方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 2 = Jfc.getSelectedFile().getParent(); |
66.对目标压缩文件解压缩到指定文件夹
1
2
3
4
5
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ |
67.创建目录副本整合操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ JFileChooser Jfc = new JFileChooser( "请选择源路径" ); // 建立选择档案对话 方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 1 = Jfc.getSelectedFile().getParent(); Jfc = new JFileChooser( "请选择目标路径" ); // 建立选择档案对话方块盒 Jfc if (!Jfc.isFileSelectionEnabled()) { return ; } String %% 2 = Jfc.getSelectedFile().getParent(); |
68.打开网页
1
2
3
4
5
6
7
|
//import java.io.*; try { Runtime.getRuntime().exec(command); } catch (IOException ex) { ex.printStackTrace(); } |
69.删除空文件夹整合操作
1
2
3
4
5
|
/* import java.io.*; import java.util.*; import javax.swing.*; */ |
70.获取磁盘所有分区后再把光驱盘符去除(用"/0"代替),把结果放在数组allfenqu[] 中,数组中每
个元素代表一个分区盘符,不包括 :// 这样的路径,allfenqu[]数组开始时存放的是所有盘符。
当我用这样的代码测试结果是正确的,光驱盘符会被去掉:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
String root; //root代表盘符路径 for (i= 0 ;i< 20 ;i++) //0-20代表最大的盘符数 { if (GetDriveType(root)== 5 ) allfenqu[i]= '/0' ; } 但我用这样的代码时结果却无法去掉光驱盘符,allfenqu[]中还是会包含光驱盘符: String root; for (i= 0 ;i< 20 ;i++) { root=allfenqu[i]+ "://" ; if (GetDriveType(root)== 5 ) allfenqu[i]= '/0' ; } |
71.激活一个程序或程序关联的文件
1
2
3
4
5
6
|
//import java.io.*; try { Runtime.getRuntime().exec(%% 1 ); } catch (IOException e) { e.printStackTrace(); } |
72.HTTP下载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
public class DownloadCSVFileAction extends Action{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try { String fileName = request.getParameter( "fileName " ); long maID = Long.parseLong(request.getParameter( "maID " )); String filePath = request.getSession().getServletContext ().getRealPath( "/ " )+ "csv/ " +maID+ "/ " +fileName; File fdown = new File(filePath); int filelength = Integer.parseInt(String.valueOf (fdown.length())); //下载类型 response.setContentType( "application/text;charset=GB2312 " ); response.setHeader( "Content-Dispositon " , "attachment;filename= 销售详细记录.csv "); //销售详细记录.csv是我想要的下载文件的文件名,但是下载对话框中显 示的是 downLoadCSVFile. do response.setContentLength(filelength); byte b[]= new byte [filelength]; FileInputStream fi= new FileInputStream(fdown); OutputStream o=response.getOutputStream(); int n = 0 ; while ((n=fi.read(b))!=- 1 ) { o.write(b, 0 ,n); } fi.close(); o.close(); return null ; } catch (Exception e) { request.setAttribute( "ERROR " , e); return mapping.findForward( "error " ); } } } |
对应的下载类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
private String getContentType(String fileName) { String fileNameTmp = fileName.toLowerCase(); String ret = "" ; if (fileNameTmp.endsWith( "txt" )) { ret = "text/plain" ; } if (fileNameTmp.endsWith( "gif" )) { ret = "image/gif" ; } if (fileNameTmp.endsWith( "jpg" )) { ret = "image/jpeg" ; } if (fileNameTmp.endsWith( "jpeg" )) { ret = "image/jpeg" ; } if (fileNameTmp.endsWith( "jpe" )) { ret = "image/jpeg" ; } if (fileNameTmp.endsWith( "zip" )) { ret = "application/zip" ; } if (fileNameTmp.endsWith( "rar" )) { ret = "application/rar" ; } if (fileNameTmp.endsWith( "doc" )) { ret = "application/msword" ; } if (fileNameTmp.endsWith( "ppt" )) { ret = "application/vnd.ms-powerpoint" ; } if (fileNameTmp.endsWith( "xls" )) { ret = "application/vnd.ms-excel" ; } if (fileNameTmp.endsWith( "html" )) { ret = "text/html" ; } if (fileNameTmp.endsWith( "htm" )) { ret = "text/html" ; } if (fileNameTmp.endsWith( "tif" )) { ret = "image/tiff" ; } if (fileNameTmp.endsWith( "tiff" )) { ret = "image/tiff" ; } if (fileNameTmp.endsWith( "pdf" )) { ret = "application/pdf" ; } return ret; } |
73.FTP下载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/* import sun.net.ftp.FtpClient; import java.io.*; import sun.net.*; */ //如果文件在某个目录下,则加入fc.cd("foodir"); //比如要下载ftp://ftp.xx.com/index.html则: try { FtpClient fc= new FtpClient( "ftp.xx.com" ); fc.login( "username" , "888888" ); int ch; RandomAccessFile getFile = new RandomAccessFile(fi, "rw" ); getFile.seek( 0 ); TelnetInputStream fget=fc.get( "index.html" ); DataInputStream puts = new DataInputStream(fget); while ((ch = puts.read()) >= 0 ) { getFile.write(ch); } fget.close(); getFile.close(); fc.closeServer(); } catch (IOException ex) { ex.printStackTrace(); } |
74.写图像到剪切板 setClipboardImage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/* import java.awt.*; import java.awt.datatransfer.*; import java.io.*; */ private final Image image; Transferable trans = new Transferable() { public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[] { DataFlavor.imageFlavor }; } public boolean isDataFlavorSupported(DataFlavor flavor) { return DataFlavor.imageFlavor.equals(flavor); } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (isDataFlavorSupported(flavor)) return image; throw new UnsupportedFlavorException(flavor); } }; Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans, null ); |
75.从剪贴板复制图像到窗体
76.删除文件夹下的所有文件且不删除文件夹下的文件夹
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
//import java.io.*; //import java.util.*; LinkedList<String> folderList = new LinkedList<String>(); folderList.add(%% 1 ); while (folderList.size() > 0 ) { File file = new File(folderList.peek()); folderList.removeLast(); File[] files = file.listFiles(); ArrayList<File> fileList = new ArrayList<File>(); for ( int i = 0 ; i < files.length; i++) { if (files[i].isDirectory()) { folderList.add(files[i].getPath()); } else { fileList.add(files[i]); } } for (File f : fileList) { f.delete(); } } |
希望本文所述对大家Java程序设计有所帮助。
from: http://www.jb51.net/article/75169.htm
Java最全文件操作实例汇总的更多相关文章
- Java学习-019-Properties 文件读取实例源代码
在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...
- Java学习-015-CSV 文件写入实例源代码
在日常的自动化测试脚本编写的过程中,有时要将获取的测试结果或者测试数据存放在数据文件中,以用作后续的参数化测试.常用的文件文件类型无非 txt.csv.xls.properties.xml 这五种文件 ...
- Java学习-018-EXCEL 文件写入实例源代码
众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...
- Java学习-017-EXCEL 文件读取实例源代码
众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...
- Java学习-016-CSV 文件读取实例源代码
上文(CSV文件写入)讲述了日常自动化测试过程中将测试数据写入 CSV 文件的源码,此文主要讲述如何从 CSV 文件获取测试过程中所需的参数化数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感 ...
- Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录
Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...
- Java中的文件操作(一)RandomAccessFile
今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...
- Java审计之文件操作漏洞
Java审计之文件操作漏洞篇 0x00 前言 本篇内容打算把Java审计中会遇到的一些文件操作的漏洞,都给叙述一遍.比如一些任意文件上传,文件下载,文件读取,文件删除,这些操作文件的漏洞. 0x01 ...
- 关于文件的INode与Java中的文件操作接口
本文由作者周梁伟授权网易云社区发布. 近日做的项目中涉及到多进程共同读写多个文件的问题,文件名和最后修改时间都是可能会被频繁修改的,因而识别文件的唯一性会产生相当的麻烦,于是专门再学习了一下文件系统对 ...
随机推荐
- sqlserver log
DBCC LOGINFODBCC log('QSSys', TYPE=2)goselect * from sys.fn_dblog(null,null)select [Dirty Pages],[Mi ...
- MySQL优化常用
一.mysql的配置都是小写的,使用下划线_或破折号-分割单词,两者是一样的二.在配置文件中可以用1m,1g等单位,但是用set命令,不能使用单位,默认单位是字节三.特殊例子a.query_cache ...
- Listener-监听器+ServletContext+ApplicationContext
参考资料 ServletContext和ApplicationContext有什么区别 ServletContext:是web容器的东西, 一个webapp一个, 比session作用范围要大, 从中 ...
- Delphi出现“borland license information was found,but it is not valid for delphi”的错误,无法运行的解决方法
1) 删除文件: C:\documents and settings\<username>\.borland\registry.slm,如果在win8或在win7下,即C:\Users\H ...
- jdbc 日期时间相关的类型
jdbc 日期时间相关的类型 1.sql.Date sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集.它只处理年月日,而忽略小时和分秒,用以代表SQL的D ...
- circle and bar
<!doctype html> <meta charset="utf-8"> <html> <head> <title> ...
- JS中的工厂模式
.一个栗子: var BicycleShop = function(){}; BicycleShop.prototype = { sellBicycle : function( model ){ va ...
- 6 个JavaScript日期处理库
1. Later.js Later.js, a stadalone JavaScript library, offers an advanced usage for triggering recurr ...
- .Net平台下ActiveMQ入门实例
1.ActiveMQ简介 先分析这么一个场景:当我们在网站上购物时,必须经过,下订单.发票创建.付款处理.订单履行.航运等.但是,当用户下单后,立即跳转到“感谢那您的订单” 页面.不仅如此,若果没有延 ...
- 转:自定义ASP.NET MVC Html辅助方法
在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么 ...