锘??xml version="1.0" encoding="utf-8" standalone="yes"?> import java.io.*錛?/p>
public class IOStreamDemo { public void samples() throws IOException { //1. 榪欐槸浠庨敭鐩樿鍏ヤ竴琛屾暟鎹?榪斿洖鐨勬槸涓涓瓧絎︿覆 //2. 榪欐槸浠庢枃浠朵腑閫愯璇誨叆鏁版嵁 BufferedReader in = new BufferedReader(new FileReader("IOStreamDemo.java"))錛?br />
String s, s2 = new String()錛?br />
while((s = in.readLine())!= null) } 瀵逛簬涓婇潰鐨勪緥瀛愶紝闇瑕佽鏄庣殑鏈変互涓嬪嚑鐐癸細 銆銆1. BufferedReader鏄疪eader鐨勪竴涓瓙綾伙紝瀹冨叿鏈夌紦鍐茬殑浣滅敤錛岄伩鍏嶄簡棰戠箒鐨勪粠鐗╃悊璁懼涓鍙栦俊鎭傚畠鏈変互涓嬩袱涓瀯閫犲嚱鏁幫細 BufferedReader(Reader in) 銆銆榪欓噷鐨剆z鏄寚瀹氱紦鍐插尯鐨勫ぇ灝忋?/p>
銆銆瀹冪殑鍩烘湰鏂規硶錛?/p>
void close() //鍏抽棴嫻?/p>
void mark(int readAheadLimit) //鏍囪褰撳墠浣嶇疆 boolean markSupported() //鏄惁鏀寔鏍囪 int read() //緇ф壙鑷猂eader鐨勫熀鏈柟娉?/p>
int read(char[] cbuf, int off, int len) //緇ф壙鑷猂eader鐨勫熀鏈柟娉?/p>
String readLine() //璇誨彇涓琛屽唴瀹瑰茍浠ュ瓧絎︿覆褰㈠紡榪斿洖 void reset() //閲嶈鍒版渶榪戠殑涓涓爣璁?/p>
long skip(long n) //璺寵繃鎸囧畾涓暟鐨勫瓧絎﹁鍙?/p>
2. InputStreamReader鏄疘nputStream鍜孯eader涔嬮棿鐨勬ˉ姊侊紝鐢變簬System.in鏄瓧鑺傛祦錛岄渶瑕佺敤瀹冩潵鍖呰涔嬪悗鍙樹負瀛楃嫻佷緵緇橞ufferedReader浣跨敤銆?/p>
銆銆榪欏彞璇濅綋鐜頒簡Java杈撳叆杈撳嚭緋葷粺鐨勪竴涓壒鐐癸紝涓轟簡杈懼埌鏌愪釜鐩殑錛岄渶瑕佸寘瑁呭ソ鍑犲眰銆傞鍏堬紝杈撳嚭鐩殑鍦版槸鏂囦歡IODemo.out錛屾墍浠ユ渶鍐呭眰鍖呰鐨勬槸 FileWriter錛屽緩绔嬩竴涓緭鍑烘枃 浠舵祦錛屾帴涓嬫潵錛屾垜浠笇鏈涜繖涓祦鏄紦鍐茬殑錛屾墍浠ョ敤BufferedWriter鏉ュ寘瑁呭畠浠ヨ揪鍒扮洰鐨勶紝鏈鍚庯紝鎴戜滑闇瑕佹牸寮忓寲杈撳嚭緇撴灉錛屼簬鏄皢PrintWriter鍖呭湪鏈澶栧眰銆?/p>
import java.io.*錛?/p>
public class Redirecting { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader( new InputStreamReader(System.in))錛?br />
String s錛?br />
while((s = br.readLine()) != null) 銆銆鍦ㄨ繖閲宩ava.lang.System鐨勯潤鎬佹柟娉?/p>
static void setIn(InputStream in) 銆銆鎻愪緵浜嗛噸鏂板畾涔夋爣鍑嗚緭鍏ヨ緭鍑烘祦鐨勬柟娉曪紝榪欐牱鍋氭槸寰堟柟渚跨殑錛屾瘮濡備竴涓▼搴忕殑緇撴灉鏈夊緢澶氾紝鏈夋椂鍊欑敋鑷寵緲婚〉鏄劇ず錛岃繖鏍蜂笉渚夸簬瑙傜湅緇撴灉錛岃繖鏄綘灝卞彲浠ュ皢鏍囧噯杈撳嚭嫻佸畾涔変負 涓涓枃浠舵祦錛岀▼搴忚繍琛屽畬涔嬪悗鎵撳紑鐩稿簲鐨勬枃浠惰鐪嬬粨鏋滐紝灝辯洿瑙備簡璁稿銆?/p>
澶氱伒媧誨鍙樼殑鍔熻兘鏄敱瀹冧滑鐨勫瓙綾繪潵鎵╁厖瀹屾垚鐨勩傜煡閬撲簡Java杈撳叆杈撳嚭鐨勫熀鏈眰嬈$粨鏋勪互鍚庯紝鏈枃鍦ㄨ繖閲屾兂緇欏ぇ瀹朵竴浜涗互鍚庡彲浠ュ弽澶嶅簲鐢ㄤ緥瀛愶紝瀵逛簬鎵鏈夊瓙綾葷殑緇嗚妭鍙婂叾鍔熻兘騫朵笉璇︾粏璁ㄨ銆?/p>
BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in))錛?
System.out.print("Enter a line:")錛?br />
System.out.println(stdin.readLine())錛?/p>
s2 += s + "\n"錛?br />
in.close()錛?/p>
//3. 榪欐槸浠庝竴涓瓧絎︿覆涓愪釜璇誨叆瀛楄妭
StringReader in1 = new StringReader(s2)錛?br />
int c錛?br />
while((c = in1.read()) != -1)
System.out.print((char)c)錛?/p>
//4. 榪欐槸灝嗕竴涓瓧絎︿覆鍐欏叆鏂囦歡
try {
BufferedReader in2 = new BufferedReader(new StringReader(s2))錛?br />
PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")))錛?br />
int lineCount = 1錛?br />
while((s = in2.readLine()) != null )
out1.println(lineCount++ + ": " + s)錛?br />
out1.close()錛?br />
} catch(EOFException e) {
System.err.println("End of stream")錛?br />
}
}
BufferedReader(Reader in, int sz)
boolean ready() //鍒ゆ柇嫻佹槸鍚﹀凡緇忓仛濂借鍏ョ殑鍑嗗
銆銆3. PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")))錛?/p>
Java鎻愪緵浜嗚繖鏍蜂竴涓姛鑳斤紝灝嗘爣鍑嗙殑杈撳叆杈撳嚭嫻佽漿鍚戯紝涔熷氨鏄錛屾垜浠彲浠ュ皢鏌愪釜鍏朵粬鐨勬祦璁句負鏍囧噯杈撳叆鎴栬緭鍑烘祦錛岀湅涓嬮潰榪欎釜渚嬪瓙錛?/p>
PrintStream console = System.out錛?br />
BufferedInputStream in = new BufferedInputStream( new FileInputStream( "Redirecting.java"))錛?br />
PrintStream out = new PrintStream( new BufferedOutputStream( new FileOutputStream("test.out")))錛?br />
System.setIn(in)錛?br />
System.setOut(out)錛?/p>
System.out.println(s)錛?br />
out.close()錛?
System.setOut(console)錛?br />
}
}
static void setOut(PrintStream out) package com.Gavin.io;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
/**
* **********************************************
*
* @description 鍦ㄦ枃浠跺悗榪藉姞鍐呭
* @author Gavin.lee
* @date Jul 14, 2009 3:25:58 PM
* @version 1.0 **********************************************
*/
public class FileAdd {
/**
* public FileOutputStream(String fileName,
boolean append)
throws FileNotFoundException
*/
public void fileAdd(String absolutePath, String content, boolean isAdd) {
if(content == null) {
return;
}
try {
FileOutputStream fos = new FileOutputStream(new File(absolutePath), isAdd);
fos.write(content.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* public FileWriter(String fileName,
boolean append)
throws IOException
*/
public void fileAdd2(String absolutePath, String content, boolean isAdd) {
try {
FileWriter fw = new FileWriter(absolutePath, isAdd);
PrintWriter pw = new PrintWriter(fw);
pw.println(content);
pw.close () ;
fw.close () ;
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* public RandomAccessFile(File file,
String mode)
throws FileNotFoundException
鍚剰 鍊?br />
"r" 浠ュ彧璇繪柟寮忔墦寮銆傝皟鐢ㄧ粨鏋滃璞$殑浠諱綍 write 鏂規硶閮藉皢瀵艱嚧鎶涘嚭 IOException銆?nbsp;
"rw" 鎵撳紑浠ヤ究璇誨彇鍜屽啓鍏ャ傚鏋滆鏂囦歡灝氫笉瀛樺湪錛屽垯灝濊瘯鍒涘緩璇ユ枃浠躲?nbsp;
"rws" 鎵撳紑浠ヤ究璇誨彇鍜屽啓鍏ワ紝瀵逛簬 "rw"錛岃繕瑕佹眰瀵規枃浠剁殑鍐呭鎴栧厓鏁版嵁鐨勬瘡涓洿鏂伴兘鍚屾鍐欏叆鍒板簳灞傚瓨鍌ㄨ澶囥?nbsp;
"rwd" 鎵撳紑浠ヤ究璇誨彇鍜屽啓鍏ワ紝瀵逛簬 "rw"錛岃繕瑕佹眰瀵規枃浠跺唴瀹圭殑姣忎釜鏇存柊閮藉悓姝ュ啓鍏ュ埌搴曞眰瀛樺偍璁懼銆?nbsp;
*/
public void fileAdd3(String absolutePath, String content, String mode) {
try {
RandomAccessFile rf = new RandomAccessFile(absolutePath, mode);
rf.seek(rf.length()); //灝嗘寚閽堢Щ鍔ㄥ埌鏂囦歡鏈熬
rf.writeBytes(content);
rf.close();//鍏抽棴鏂囦歡嫻?nbsp;
}catch (IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
FileAdd fa = new FileAdd();
fa.fileAdd("d:\\abc.txt", "test content", true);
}
}
]]>
]]>package com.Gavin.tools.fileoper;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* **********************************************
* @description 鍒犻櫎鎸囧畾鐩綍涓嬬殑絀烘枃浠跺す
* 鍦ㄦ竻闄ら」鐩笟鍔℃棩蹇楁枃浠舵椂浼氱粡甯擱亣鍒?br />
* @author Gavin.lee
* @date Jun 27, 2009 12:24:55 PM
* @version 1.0
***********************************************
*/
public class DeleteNullDirectory {
/**
* 鍒楀嚭鏌愭枃浠跺す涓嬬殑絀烘枃浠跺す緇濆璺緞錛屽偍瀛樿嚦list
* @param root
* @return
*/
public List<File> getAllNullDirectorys(File root) {
List<File> list = new ArrayList<File>();
File[] dirs = root.listFiles();
if (dirs != null) {
for (int i = 0; i < dirs.length; i++) {
if (dirs[i].isDirectory()) {
System.out.println("name:" + dirs[i].getPath());
list.add(dirs[i]);
}
getAllNullDirectorys(dirs[i]);
}
}
return list;
}
//鍒犻櫎鎿嶄綔
public void removeNullFile(List<File> list) {
for (int i = 0; i < list.size(); i++) {
File temp = list.get(i);
if (temp.isDirectory() && temp.listFiles().length <= 0) {
temp.delete();
}
}
}
public static void main(String[] args) {
DeleteNullDirectory m = new DeleteNullDirectory();
List<File> list = m.getAllNullDirectorys(new File("e:/test"));
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getPath());
}
m.removeNullFile(list);
}
}
]]>
鍏跺疄log4j鐨勮褰曚笉浠呬粎鏄褰曞埌console錛宖ile錛岃繕鍙互鍒癿ail錛宩dbc銆?br />
鏍筁ogger鐨勯厤緗細璁劇疆杈撳嚭鐨勪紭鍏堢駭錛宭og4j.rootLogger = [ level ] , appenderName, appenderName, …
### global config ###
# log level: DEBUG<INFO<WARN<ERROR<FATAL
log4j.rootLogger=DEBUG,console,file
### appender of console ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p %5r %c] ->Thread:%t -file:%F -line:%L -content:%m%n
### appender of file ###
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:/exam.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p %5r %d{yyyy-MM-dd HH\:mm\:ss.SSS} %c] -> -%F%L -%m%n
log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILE
log4j.addivity.org.apache=true
# 搴旂敤浜庢帶鍒跺彴
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 鐢ㄤ簬鏁版嵁搴?br />
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@90.0.12.20:1521:ORCL
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user=Nation
log4j.appender.DATABASE.password=1
log4j.appender.CONSOLE.Threshold=WARN
log4j.appender.DATABASE.sql=INSERT INTO LOG4J(stamp,thread, infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')
# INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
# 鍐欏叆鏁版嵁搴撲腑鐨勮〃LOG4J鐨凪essage瀛楁涓紝鍐呭錛卍錛堟棩鏈燂級%c: 鏃ュ織淇℃伅鎵鍦ㄥ湴錛堢被鍚嶏級%p: 鏃ュ織淇℃伅綰у埆%m: 浜х敓鐨勬棩蹇楀叿浣撲俊鎭?%n: 杈撳嚭鏃ュ織淇℃伅鎹㈣
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 姣忓ぉ鏂板緩鏃ュ織
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=C:/log4j/log
log4j.appender.A1.Encoding=GBK
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
#搴旂敤浜庢枃浠?br />
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=C:/log4j/file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.Encoding=GBK
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 搴旂敤浜庢枃浠跺洖婊?br />
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.CONSOLE_FILE.Encoding=GBK
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#鑷畾涔堿ppender
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient = corlin@cybercorlin.net
log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#搴旂敤浜巗ocket
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
# Set up for Log Facter 5
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
# Log Factor 5 Appender
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000
# 鍙戦佹棩蹇楃粰閭歡
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=web@www.wuset.com
log4j.appender.MAIL.SMTPHost=www.wusetu.com
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To=web@www.wusetu.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n