使用java NIO進行讀文件

n342 9年前發布 | 1K 次閱讀 Java

Java NIO非堵塞技術實際是采取Reactor模式,或者說是Observer模式為我們監察I/O端口,如果有內容進來,會自動通知我們,這樣,我們就不必開啟多個線程死等,從外界看,實現了流暢的I/O讀寫,不堵塞了。 這段代碼是使用java NIo讀一個文件的簡單應用。

 public static String readUseNIO(File file) {
  FileInputStream fin;
  String string = null;
  try {
   fin = new FileInputStream(file);
   FileChannel channel = null;
   channel = fin.getChannel();
   // 文件內容的大小
   int size = (int) channel.size();
   // 獲取通道
   FileChannel fc = fin.getChannel();
   // 創建緩沖區
   ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024 * 1);
   // 讀取數據到緩沖區
   fc.read(buffer);
   // Buffer bf = buffer.flip();
   // System.out.println("limt:" + bf.limit());
   byte[] bt = buffer.array();
   string = new String(bt, 0, size,"UTF-8");
   // System.out.println(new String(bt, 0, size));
   // FileUtil.appendString("F:/html/22.html", new String(bt, 0,
   // size));
   buffer.clear();
   buffer = null;
   fin.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return string;
 }

 本文由用戶 n342 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!