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. 京东云Ubuntu下安装mysql

    1.sudo apt-get install mysql-server,输入y后输入密码 2.sudo apt isntall mysql-client 3.sudo apt install libm ...

  2. HDU 5443 The Water Problem (ST算法)

    题目链接:HDU 5443 Problem Description In Land waterless, water is a very limited resource. People always ...

  3. 2019河北省大学生程序设计竞赛(重现赛)B 题 -Icebound and Sequence ( 等比数列求和的快速幂取模)

    题目链接:https://ac.nowcoder.com/acm/contest/903/B 题意: 给你 q,n,p,求 q1+q2+...+qn 的和 模 p. 思路:一开始不会做,后面查了下发现 ...

  4. Hexo使用攻略-添加分类及标签

    创建"分类"选项 生成"分类"页并添加tpye属性 打开命令行,进入博客所在文件夹.执行命令 hexo new page categories 成功后会提示: ...

  5. wpf mvvm datagrid 中button绑定命令方法

    <DataGridTemplateColumn Header="设备状态" IsReadOnly="True" Width="150" ...

  6. Java 四种内部类

    静态内部类:类中静态类 成员内部类:类中非静态类 局部内部类:类中方法中有名字的类 匿名内部类:类中方法中无名的类 引言:在Java中通常情况下,一个类中会有属性和方法,但还可以包含内部类,内部类可以 ...

  7. No package docker-io available

    新手centos6.8安装docker时从遇到No package docker-io available开始的各种不小心的坑... 新安装了CentOS6.8,准备安装docker,执行命令 yum ...

  8. webapi JWT 认证

    第一步 使用ng安装JWT组件 第二步 编写登录和生成token代码 byte[] key = Encoding.UTF8.GetBytes("123456789aaaaaaa") ...

  9. tf-idf 词条权重计算

    在文本分类问题中,某些高频词一直出现,这样的词对区分文档的作用不大,例如: D1:  'Job was the chairman of Apple Inc.' D2:  'I like to use ...

  10. 【JZOJ6403】a

    description analysis 考虑\((0,0,0)\)走到某个点\((i,j,k)\)的贡献,相当于插板问题 \(i+j\)个空插\(k\)个板可以有空,\(i\)个空插\(j\)个板可 ...