Java常用面試題16 用IO和NIO兩種方式實現檔案拷貝
問:用IO和NIO兩種方式實現檔案拷貝
答:
import java.io.File;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class MyUtil {
//// 工具類中的方法都是靜態方式訪問的因此將構造器私有不允許建立物件(絕對好習慣)
private MyUtil() {}
public static void fileCopy(String source, String target)
throws IOException {
try (InputStream in = new FileInputStream(source)) {
try (OutputStream out = new FileOutputStream(target)) {
byte[] buffer = new byte[4096];
int bytesToRead;
while ((bytesToRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesToRead);
}
}
}
}
public static void fileCopyNIO(String source, String target)
throws IOException {
try (FileInputStream in = new FileInputStream(source)) {
try (FileOutputStream out = new FileOutputStream(target)) {
FileChannel inChannel = in.getChannel();
FileChannel outChannel = out.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(4096);
while (inChannel.read(buffer) != -1) {
buffer.flip();
outChannel.write(buffer);
buffer.clear();
}
}
}
}
public static void main(String[] args) {
//獲取你當前的路徑
System.out.println(f);
try {
MyUtil.fileCopyNIO("F:\\WorkSpace feature\\rule_center\\target\\classes\\aa\\aa.txt", "F:\\WorkSpace feature\\rule_center\\target\\classes\\aa\\bb.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
執行結果:F:\WorkSpace%20feature\rule_center\target\classes
相關推薦
Java常用面試題16 用IO和NIO兩種方式實現檔案拷貝
問:用IO和NIO兩種方式實現檔案拷貝 答: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;
Java和PHP兩種方式實現上傳圖片到新浪微博的圖床
這幾天遇到一個需求,需要將圖片上傳到新浪微博的圖傳,研究了一下, 特此記錄1.模擬登陸,獲取cookie登入地址為:https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=140313
nrf52832用I2C和SPI兩種方式驅動LIS2DS12
本來在這裡寫了些牢騷話,但是想想這是記錄技術文件,還是廢話少說為好 直奔主題 先介紹下LIS2DS12,ST公司出的gsensor,內部自帶mcu ,可以輸出步數、敲擊、翻腕等行為結果,還提供了一個256級的FIFO(可以儲存256組三軸資料),FIFO具有
9.10 路由控制之反向解析--【別名】html和views兩種方式實現
com 反向 技術分享 http mage login gin bsp 分享圖片 1. 在html裏反向解析 給路徑起別名,修改路徑時,不用每個地方都修改。 {% url ‘Log‘ %} : 就會去找別名為Log的URL,找到 "login/"後把"logi
spring之AOP操作(基於aspectJ實現)--配置檔案和註解兩種方式實現
AOP概念 1 aop:面向切面(方面)程式設計,擴充套件功能不修改原始碼實現 2 AOP採取橫向抽取機制,取代了傳統縱向繼承體系重複性程式碼 3 aop底層使用動態代理實現 (1)第一種情況,有介面情況,使用動態代理建立介面實現類代理物
合併兩個陣列並去重(ES5和ES6兩種方式實現)
ES6實現方式 let arr1 = [1, 1, 2, 3, 6, 9, 5, 5, 4] let arr2 = [1, 2, 5, 4, 9, 7, 7, 8, 8] f
Java常用面試題15 synchronized方法的妙用 鎖池和等待池的區別
問: 當一個執行緒進入一個物件的synchronized方法A之後,其它執行緒是否可進入此物件的synchronized方法B? 答: 不能。其它執行緒只能訪問該物件的非同步方法,同步方法則不能進入。因為非靜態方法上的synchronized修飾符要求執行方法時要獲得
Java常用面試題14 如何暫停執行緒Sleep和Wait 你能分清楚嗎?
問: Thread類的sleep()方法和Object類的wait()方法都可以讓執行緒暫停執行,它們有什麼區別? 答: sleep()方法(休眠)是執行緒類(Thread)的靜態方法,呼叫此方法會讓當前執行緒暫停執行指定的時間,將執行機會(CPU)讓給其他執行緒,但是
JAVA常用面試題總結
JAVA常用面試題總結 一、SpringMVC執行原理 SpringMVC執行原理 1. 客戶端請求提交到DispatcherServlet 2. 由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Cont
客觀面試題--16.值傳遞和引用傳遞的區別?JavaScript的資料型別都有什麼?
關於值傳遞和引用傳遞其實需要分情況看待.1.基本型別和引用型別在記憶體中的儲存Java中資料型別分為兩大類,基本型別和物件型別。相應的,變數也有兩種型別:基本型別和引用型別。基本型別的變數儲存原始值,即它代表的值就是數值本身;而引用型別的變數儲存引用值,"引用值"指向記憶體空
java實現二分查詢演算法,兩種方式實現,非遞迴和遞迴
java實現二分查詢演算法 1、概念 2、前提 3、思想 4、過程 4、複雜度 5、實現方式 1. 非遞迴方式 2. 遞迴方式
17-Java併發程式設計:執行緒間協作的兩種方式:wait、notify、notifyAll和Condition
Java併發程式設計:執行緒間協作的兩種方式:wait、notify、notifyAll和Condition 在前面我們將了很多關於同步的問題,然而在現實中,需要執行緒之間的協作。比如說最經典的生產者-消費者模型:當佇列滿時,生產者需要等待佇列有空間才能繼續往裡面放
Java併發程式設計:執行緒間協作的兩種方式:wait、notify、notifyAll和Condition
在前面我們將了很多關於同步的問題,然而在現實中,需要執行緒之間的協作。比如說最經典的生產者-消費者模型:當佇列滿時,生產者需要等待佇列有空間才能繼續往裡面放入商品,而在等待的期間內,生產者必須釋放對臨界資源(即佇列)的佔用權。因為生產者如果不釋放對臨界資源的佔用權,那麼消費者
遞迴和迭代兩種方式實現歸併排序(Java版)
遞迴版 package MergeSort; import Utils.SortUtils; /** * 歸併排序遞迴版 * @author liguodong */ pub
用陣列和連結串列兩種方式實現佇列
手寫陣列實現佇列 1 int queue[20]; 2 int front,rear; 3 4 void clear() 5 { 6 front = rear = -1; 7 } 8 9 int size() 10 { 11 return (rear-front)
java實現下載excle(jxl和poi 兩種方式)
@RequestMapping(value="/download_index") public String downloadExcel(HttpServletRequest request,HttpServletResponse response,String nam
ubuntu 16.04安裝redis的兩種方式(apt和編譯方式)和解除安裝
保證網路暢通,選定好下載工作路徑,執行以下命令下載redis-3.2.6: sudo wget http://download.redis.io/releases/redis-3.2.6.ta
跨域問題相關知識詳解(原生js和jquery兩種方法實現jsonp跨域)
syn con 加載 developer 兩種方法 ray exe 編寫 分組 1、同源策略 同源策略(Same origin policy),它是由Netscape提出的一個著名的安全策略。同源策略是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽
Android以JSONOject和GSON兩種方式解析json
length pre ray oid 字符 CA clas img name json文件如下: 將獲取到的json數據轉化為String形式 OkHttpClient client = new OkHttpClient(); R
JDBC中Oracle的SID和ServiceName兩種方式的連接字符串格式
bottom none color bubuko div nbsp rac 字符串 padding SID格式: jdbc:oracle:thin:@<host>:<port>:<SID> 如: jdbc:oracle:thin:@19