IO // NIO 实现方式比较
来源:互联网 发布:西安环境监测数据造假 编辑:程序博客网 时间:2024/05/21 05:18
69、Java 中有几种类型的流?
答:字节流,字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Writer。在java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。
补充:关于Java的IO需要注意的有两点:一是两种对称性(输入和输出的对称性,字节和字符的对称性);二是两种设计模式(适配器模式和装潢模式)。另外Java中的流不同于C#的是它只有一个维度一个方向。
补充:下面用IO和NIO两种方式实现文件拷贝,这个题目在面试的时候是经常被问到的。
- package com.lovo;
- 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() {
- throw new AssertionError();
- }
- 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();
- }
- }
- }
- }
- }
0 0
- IO // NIO 实现方式比较
- Java中网络IO的实现方式-BIO、NIO、AIO
- Java NIO 之 NIO与IO比较
- IO和NIO的比较
- 传统IO与NIO比较
- java NIO 与IO的比较
- Java NIO与IO 区别和比较
- Java NIO与IO 区别和比较
- Java网络编程-Nio IO 比较
- 传统IO与NIO的比较
- java IO和NIO性能比较
- Java NIO与IO比较分析
- NIO与IO比较中的几个概念
- tomcat io 与 nio性能比较
- 传统Socket IO与NIO的比较
- Java中NIO和IO的比较
- 传统IO与NIO的比较
- Java中的NIO和IO的比较
- MCMC: Metropolis-Hastings, Gibbs and slice sampling
- 一个比较简单的 newFixedThreadPool多线程实现
- 常见http状态码
- PCAP过滤器设置 (PCAP-FILTER )
- tmux 复制与粘贴
- IO // NIO 实现方式比较
- 写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
- 2015年12月21日--12月31日,每天1小时,10小时,剩3260小时
- 2016年1月1日--1月14日(32小时,剩3218小时)
- 常用服务器的默认端口号
- MVC的JavaScriptResult使用
- IPython、Notebook、qtconsole使用教程
- fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Android:meta-data