io流的一种:

package com.cxy.ssp.Automic;

import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import java.util.concurrent.atomic.AtomicStampedReference;
//通过nio实现文件io
public class Demo3 {
public static void main(String[] args) throws Exception{
//1 创建输出流
FileOutputStream fileOutputStream = new FileOutputStream("bas.txt");     //构建通道
FileChannel channel = fileOutputStream.getChannel();
     //创建缓存区
ByteBuffer buffer = ByteBuffer.allocate();
     //
String str ="hello world";
    //将数据放入缓冲区
buffer.put(str.getBytes()); try {
    //需要清空缓冲区的标记,再进行操作
buffer.flip();
      //将内容写到通道中
channel.write(buffer);
} catch (IOException e) {
e.printStackTrace();
}
fileOutputStream.close();
} }
package com.cxy.ssp.Automic;

import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel; public class Demo4 {
public static void main(String[] args) throws Exception{
//先构建输入流,
FileInputStream fileInputStream = new FileInputStream("bas.txt");
//通过流获取通道
FileChannel channel = fileInputStream.getChannel();
//准备缓存冲区
ByteBuffer buffer = ByteBuffer.allocate();
//从通道里面读取数据。是字节数据
channel.read(buffer);
//打印内容
System.out.println(new String(buffer.array()));
//关闭
fileInputStream.close();
}
}
package com.cxy.ssp.Automic;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel; public class Demo5 {
public static void main(String[] args) throws Exception {
FileInputStream fileInputStream = new FileInputStream("bas.txt");
FileOutputStream fileOutputStream = new FileOutputStream("b.txt"); FileChannel channel = fileInputStream.getChannel();
FileChannel channel1 = fileOutputStream.getChannel(); channel1.transferFrom(channel,,channel.size()); channel1.close();
channel.close(); }
}

思路:首先构建输入或者输出流,然后通过输出或者输入流建立通道,channle

创建缓冲区,进行缓存区的操作,通道的操作

以上代码总结:

1  输入输出是跟你电脑而言的,输出到电脑意外,就是输出,电脑上就是输入

2 输出流,需要向缓冲区里面put字节数据,

3 输入流:不需要向缓冲区里面进行put数据,那么只需要从通道里面读取数据就可以

nio读取文件,输出文件的更多相关文章

  1. java nio通过ByteBuffer输出文件信息

    1.通过ByteBuffer的get()方法每次读取一个字节转换成char类型输出. fc = new FileInputStream("src/demo20/data.txt") ...

  2. java nio读取和写入文件

    读取 package com.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...

  3. 基于File NIO写的一个文件新增内容监控器

    基于File NIO写的一个文件新增内容监控器 需求说明 监控一个文件,如果文件有新增内容,则在控制台打印出新增内容. 代码示例 FileMoniter文件监控器类 package com.black ...

  4. iOS案例:读取指定txt文件,并把文件中的内容输出出来

    用到的是NSString中的initWithContentsOfFile: encoding方法 // // main.m // 读取指定文件并输出内容 // // Created by Apple ...

  5. XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容

    一.新建Demo2类: import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXPar ...

  6. PCB 电测试--测试点数自动输出到流程指示中(读取TGZ Stephdr文件)

    好不容易实现了 <PCB 无需解压,直接读取Genesis TGZ指定文件 > 正好这里有一项需求:PCB电测试--测试点数自动输出到流程指示中 一.自动输出测试点小结; 1.由于历史原因 ...

  7. .NET Core的文件系统[1]:读取并监控文件的变化

    ASP.NET Core 具有很多针对文件读取的应用.比如我们倾向于采用JSON文件来定义配置,所以应用就会涉及针对配置文件读取.如果用户发送一个针对物理文件的HTTP请求,应用会根据指定的路径读取目 ...

  8. 转发 win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 解决方案

    win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NE ...

  9. Win7下:编译器错误信息: CS0016: 未能写入输出文件

    错误如下: "/"应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS ...

  10. 编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/....dll”--“拒绝访问。

    错误如下: “/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入 ...

随机推荐

  1. 二:unittest框架配合selenium之xpath定位

    刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的 ...

  2. 通过adb命令查看SN、CID码等信息

      用ADB命令来查看自己手机的相关硬件以及其他的参数信息,相信许多机友已经早已查看过,而新入门感兴趣的机友可以尝试一下. 运用这些ADB命令可以很直观的查看到你手机上的硬件与软件方面的详细信息. 下 ...

  3. Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务

    文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...

  4. 剑指offer——58数组中数值和下标相等的元素

    题目三: 数组中数值和下标相等的元素. 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素.例如,在数组{-3,-1,1,3,5}中,数 ...

  5. 2019秋Java课程总结&实验总结一

    1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数". 实验源码: ...

  6. idea中maven在install时出现一个问题

    Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on ...

  7. hud 3183

    题意:给出n个数字的字符串,要求你删除m个数字后,得到的数字最小. 分析:删除m个,就是选n-m个,而且,选的第一个数,肯定在(0—(n-m-1))中,第二个就在(第一个的下一位—(n-m-2)中.就 ...

  8. 第六篇 xpath的用法

    使用pycharm debug调试效率会比较慢,因为每次调试都需要向url发送请求,等返回信息,scrapy提供一种方便调试的功能,如下: >>>(third_project) bi ...

  9. 编写Storm程序

  10. 16_TLB与流水线

    1 前面做的实验起始有缺陷 访问内存之后,后面执行两句代码后:并不能保证刚才访问的代码还在TLB中:有可能被刷新出去了: 实验验证缺陷: 代码 不连续 TLB 被淘汰: 2万次中有1次被淘汰:由于访问 ...