接着上一篇再为大家介绍java应用和输入输出常用方法,供大家参考,具体内容如下
一、应用
1、使用StringBuilder或StringBuffer
// join(["a", "b", "c"]) -> "a and b and c"String join(List<String> strs) { StringBuilder sb = new StringBuilder(); boolean first = true; for (String s : strs) { if (first) first = false; else sb.append(" and "); sb.append(s); } return sb.toString();}
2、生成一个范围内的随机整数
Random rand = new Random(); // Between 1 and 6, inclusiveint diceRoll() { return rand.nextInt(6) + 1;}
3、使用Iterator.remove()
void filter(List<String> list) { for (Iterator<String> iter = list.iterator(); iter.hasNext(); ) { String item = iter.next(); if (...) iter.remove(); }}
remove()方法作用在next()方法最近返回的条目上。每个条目只能使用一次remove()方法。
4、返转字符串
String reverse(String s) { return new StringBuilder(s).reverse().toString();}
这个方法可能应该加入Java标准库。
5、启动一条线程
下面的三个例子使用了不同的方式完成了同样的事情。
实现Runnnable的方式:
void startAThread0() { new Thread(new MyRunnable()).start();} class MyRunnable implements Runnable { public void run() { ... }}
继承Thread的方式:
void startAThread1() { new MyThread().start();} class MyThread extends Thread { public void run() { ... }}
匿名继承Thread的方式:
void startAThread2() { new Thread() { public void run() { ... } }.start();}
不要直接调用run()方法。总是调用Thread.start()方法,这个方法会创建一条新的线程并使新建的线程调用run()。
6、使用try-finally
I/O流例子:
void writeStuff() throws IOException { OutputStream out = new FileOutputStream(...); try { out.write(...); } finally { out.close(); }}
锁例子:
void doWithLock(Lock lock) { lock.acquire(); try { ... } finally { lock.release(); }}
二、输入/输出
1、从输入流里读取字节数据
InputStream in = (...);try { while (true) { int b = in.read(); if (b == -1) break; (... process b ...) }} finally { in.close();}
read()方法要么返回下一次从流里读取的字节数(0到255,包括0和255),要么在达到流的末端时返回-1。
2、从输入流里读取块数据
InputStream in = (...);try { byte[] buf = new byte[100]; while (true) { int n = in.read(buf); if (n == -1) break; (... process buf with offset=0 and length=n ...) }} finally { in.close();}
要记住的是,read()方法不一定会填满整个buf,所以你必须在处理逻辑中考虑返回的长度。
3、从文件里读取文本
BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream(...), "UTF-8"));try { while (true) { String line = in.readLine(); if (line == null) break; (... process line ...) }} finally { in.close();}
4、向文件里写文本
PrintWriter out = new PrintWriter( new OutputStreamWriter(new FileOutputStream(...), "UTF-8"));try { out.print("Hello "); out.print(42); out.println(" world!");} finally { out.close();}
以上就是本文的全部内容,希望对大家的学习有所帮助。
新闻热点
疑难解答