IO流 1、File类 1.1 获取文件或目录信息 1.2 操作文件 1.3 操作目录 1.4 案例:递归列出目录的下一级 1.5 案例:递归列出目录下的所有Java源文件 2、IO流的分类和设计...2.7.2 不序列化的属性 2.7.3 序列化版本ID 2.8 按行输出文本内容 2.9 Scanner类与IO流 1、File类 java.io包下有一个File类,File就是文件或文件夹。...也就是说,程序中的文件和目录都可以通过File类的对象来完成,如新建、删除、重命名文件和目录等。 另外,程序不能直接通过File对象读取内容或写入数据,如果要操作数据,则必须通过IO流。...示例代码: import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class FileTest2...import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; public class
文章目录 1. java中IO操作 1.1. 读取文件中的内容 1.1.0.1. 使用Scanner读取文本中的内容 1.1.1. 使用FileReader读取 1.1.2....例子 1.3.3....其他的方法 java中IO操作 读取文件中的内容 使用Scanner读取文本中的内容 相信大家都知道Scanner console=new Scanner(System.in)是用来读取控制台上输入的内容...例子 BufferedWriter input=new BufferedWriter(new FileWriter("hello.txt")); input.write("这是一个文件读入的方法...因为每一个操作系统上的换行符可能不一样,不能系统的都用”\n”表示 write() 详情参见API 版权信息所有者:chenjiabing 如若转载请标明出处:chenjiabing666.github.io6
顺序IO和随机IO 对于磁盘的读写分为两种模式,顺序IO和随机IO。 随机IO存在一个寻址的过程,所以效率比较低。而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率很高。...---- Java中的随机读写 在Java中读写文件的方式有很多种,先总结以下3种方法: FileWriter和FileReader public static void fileWrite(String...} } catch (IOException ex) { ex.printStackTrace(); } } } Java...中的顺序读写 上面的对文件的读写都是随机读写,如果用来写比较小的日志文件还能满足要求,如果用来操作一个文件的读写,那可能带来很大的性能消耗。...顺序IO的读写在中间件使用的很频繁,尤其是在队列中。几乎所有的队列(kafka,qmq等使用文件存储消息)都采用了顺序IO读写。
Comparable的用法 马克-to-win:前面讲过进入TreeSet的每个元素是都排了序的,如果被添加的元素是我们自己定义的,就需要告诉TreeSet排序的规则,这个规则就要在Comparable中定义...在下面的例子中, 当我们要往TreeSet中添加我们自己定义的类Worker对象时,就在compareTo中定义排序规则。...becasue Integer claas and String class both implements this Comparable. java.lang.Object java.lang.String...All Implemented Interfaces: CharSequence, Comparable, Serializable */ import java.util.*; //Comparable...接口在java.lang包中定义 //定义的方法: //int compareTo(Object o); //实现该接口就可以实现按用户定义的自然顺序排列对象。
更多请见:https://blog.csdn.net/qq_43650923/article/details/101207784
PreparedStatement的用法就是:PreparedStatement中的SQL语句,可有一个或多个参数。每个参 数用一个问号(“?”)来占位。...例:2.1.1 import java.io.IOException; public class TestMark_to_win { public static void main(String...[] args) throws java.sql.SQLException, ClassNotFoundException, IOException { java.sql.Connection...connection = null; java.sql.PreparedStatement pstmt; Class.forName("com.mysql.jdbc.Driver..."); connection = java.sql.DriverManager.getConnection( "jdbc:mysql://localhost
本文简单介绍 Java 中的 伪异步 IO 知识。 1 伪异步 IO 通信模型 伪异步 IO 通信模型如下图所示: ?...上篇文章中 Java BIO 认识 介绍了 BIO 的弊端,就是服务端会对每个客户端的请求单独创建一个线程来处理,这样子很浪费资源,特别是高并发的时候,资源容易被耗尽导致宕机。...2 伪异步 IO 的一个简单例子 BioServer 作为服务端。...3 伪异步 IO 弊端 伪异步解决了 BIO 的资源占用问题,但是依旧没有解决 IO 阻塞问题,因为 InputStream 中的 read() 方法读取数据时,它是一直阻塞的,直到发生有数据可读、...OutputStream 中的 write() 方法也是阻塞的。 做个有梦想的程序猿
Java Io流共涉及40多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java I0流的40多个类都是从如下4个抽象类基类中派生出来的。...NIO (New I/O): NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象。...在 Java 7 中引入了 NIO 的改进版 NIO 2,它是异步非阻塞的IO模型。...AIO 是异步IO的缩写,虽然 NIO 在网络操作中,提供了非阻塞的方法,但是 NIO 的 IO 行为还是同步的。...对于 NIO 来说,我们的业务线程是在 IO 操作准备好时,得到通知,接着就由这个线程自行进行 IO 操作,IO操作本身是同步的。
微信公众号:码上就有 公众号的文章名称:JAVA中的I/O模型-多路复用 背景 在日常的IO模型中,我们应该听过BIO、NIO以及AIO。...克隆一个子进程将任务派发(这里与系统有关,在之前版本是直接在当前进程中操作,不会进行clone)。...我们继续跟到对应子进程中的文件中: 1 set_robust_list(0x7f2e346439e0, 24) = 0 2 gettid()...总结 当我选择BIO去做业务的时候,则需要考虑他能带来什么样的好处以及弊端,有利于帮助我们选择合适的一个网络IO模型。那么他的优势以及弊端各是什么呢?...优势: 代码编写简单 弊端: 线程内存浪费(开辟线程) cpu调度消耗(主线程克隆子进程,recvfrom为用户态程序调用内核系统进行等待数据接收) 下一节我们再讲解接下来的几种IO模型,让大家能够很好的体会到为什么需要不断的进行迭代升级
IO概念 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中, 流按流向分为两种: 输入流(读取数据) 输出流(写数据) 流按操作类型分为两种: 字节流...; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream;...;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public...java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import...;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.HashMap
Java当中的IO流(中) 删除目录 import java.io.File; public class Demo{ public static void main(String[] args){...字节流是用FileInputStream哦~ 读取字符文件的 FileReader java.io 类 FileReader java.lang.Object -> java.io.Reader...类 FileWriter java.lang.Object -> java.io.Writer -> java.io.OutputStreamWriter -> java.io.FileWriter...可以用charset将写入流中的字符编码为字节 OutputStreamWriter默认的字符集可以给定,否则为平台默认 java.lang.Object -> java.io.Writer -...缓冲区是给流的 java.io 类 BufferedReader java.lang.Object -> java.io.Reader -> java.io.BufferedReader 从字符输入流中读取文本
BIO与NIO的区别 BIO指的是同步阻塞式IO 在此方式下,用户进行在发起一个IO操作时,必须等待该IO操作结束,用户进程才会结束 NIO指的是异步非阻塞式IO NIO采用了双向通道进行数据传输,可以在通道上注册事件...传统IO基于字节流与字符流进行操作;NIO则是基于Channel与Buffer进行操作。数据总是从Channel通道中读取到Buffer缓冲区中,或者从Buffer缓冲区中写入到Channel通道中。...Java中的流 按照流的方向: 输入流 输出流 按照实现功能: 节点流 处理流 按照处理数据的单位: 字节流 字符流 ---- 20....为什么有了字节流还要有字符流 字符流是由Java虚拟机将字节转换得到的,而这个过程非常耗时,同时如果编码类型未知就会出现乱码问题,因此IO流就提供了一个直接操作字符的接口 ---- 22....什么是Java序列化?如何实现Java序列化? 序列化: 是一种用来处理对象流的机制,而所谓的对象流就是将对象的内容进行流化,可以对流化后的对象进行对写操作,也可将流化后的对象传输于网路之间。
Java中,是通过流 处理IO的,这种处理模式称为 IO流,IO流是一种顺序读写数据的模式。 你可以想象它是一根水管,数据就像水一样, 起点—终点 可互相流动。 ?...Writer 这四个都是抽象类,都位于 java.io 包目录。...Java使用IO 读取文件时,会进入核心态,在调用驱动进行IO,本身就会缓存在系统级别的,当你第二次读取时,会由用户态进入核心态,读取系统缓存。...在计算机层面,Java对磁盘进行操作,IO是有缓存的,并不是真正意义上的一边读一边写,底层的落盘(数据真正写到磁盘)另有方法。...总结一下: Java的IO有一个 缓冲区 的概念,不是Buffer概念的缓冲区。
前言 前面两篇文章(Java NIO之理解I/O模型(一)、Java NIO之理解I/O模型(二))介绍了,IO的机制,以及几种IO模型的内容,还有涉及到的设计模式。...这次要写一些更贴近实际一些的内容了,终于要说到了Java中的各种IO了。我也是边学边理解,有写的不对的地方,欢迎小伙伴们指出和补充。...Java中的IO分类 BIO BIO是指 Blocking IO 在JDK1.0的时候就引入了,直到JDK1.4一直都是Java中唯一的IO方式。...具体的例子我就不举了(毕竟BIO不是本次的重点)。...Channel(通道) Channel可以理解为,互通的管道,和Java的IO中的各种Stream(InputStream、OutputStream等等)一个等级,只不过Channel是双向的,而Stream
Properties ---- 引言 通过前面的简单学习,我们已经能够大致了解了关于文件的操作,但是能够明显感受到在执行其他的操作的时候,还是会有一些不方便的地方存在,因此今天我们会学习另外四个IO...=-1){ bos.write(buffer,0,len); bos.flush(); 通过字节缓冲流实现将一个文件中的内容复制在另一个文件之中。...= new InputStreamReader(is); InputStreamReader isr = new InputStreamReader(is,"GBK"); 在以上代码中,...序列化和反序列化 对象序列化 对象字节输出流,ObjectOutputStream 作用:以内存为基准,把内存中的对象存储到磁盘文件中去,称为对象序列化 构造器 说明 public...ObjectOutputStream(OutputStream os) 把低级字节输出流包装成高级的对象字节输出流 首先是简单的创建了一个学生类Student,需要注意的是Java规定对象序列化的时候
二、流的分类 1.java.io包中的类对应两类流,一类流直接从指定的位置(如磁盘文件或内存区域)读或写,这类流称为结点流(node stream),其它的流则称为过滤器(filters)。...2.Java的常用输入、输出流 java.io包中的stream类根据它们操作对象的类型是字符还是字节可分为两大类: 字符流和字节流。...如: import java.io.*; /** * Java学习交流QQ群:589809992 我们一起学Java!...例子: 1,与控制台相关。的读入/写出。 实现了字符串的复制。...import java.io.*; /** * Java学习交流QQ群:589809992 我们一起学Java!
下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂。...delAllFile(folderPath); // 删除完里面所有内容 String filePath = folderPath; filePath = filePath.toString(); java.io.File...myFilePath = new java.io.File(filePath); myFilePath.delete(); // 删除空文件夹 } catch (Exception e) {...; osw.close(); } /** * 添加内容到指定文件 如果该文件不存在,则创建并添加内容 如果该文件已存在,则添加内容到已有内容最后 * flag为true,则向现有文件中添加内容...osw.close(); } /** * 添加内容到指定文件 如果该文件不存在,则创建并添加内容 如果该文件已存在,则添加内容到已有内容最后 * flag为true,则向现有文件中添加内容
来源:ncoding.com/2018/04/02/java/io.html 整编:Java技术栈(公众号ID:javastack) 同步、异步、阻塞、非阻塞都是和I/O(输入输出)有关的概念,最简单的文件读取就是...本篇会先介绍一下I/O的基本概念,通过一个生活例子来分别解释下这几种I/O模型,以及Java支持的I/O模型。...下面我以一个生活中烧开水的例子来形象解释一下同步、异步、阻塞、非阻塞概念。 同步和异步 说到烧水,我们都是通过热水壶来烧水的。...更详细的分析可参考 聊聊Linux5种IO模型 Java中四种I/O模型 上一章所述Unix中的五种I/O模型,除信号驱动I/O外,Java对其它四种I/O模型都有所支持。...Java传统IO模型即是同步阻塞I/O NIO是同步非阻塞I/O 通过NIO实现的Reactor模式即是I/O多路复用模型的实现 通过AIO实现的Proactor模式即是异步I/O模型的实现
I :就是从 硬盘 将内容读取到 内存 中 O :就是从 内存 将内容读取到 硬盘 中 Java中的I/O操作类在包 java.io 下面,大概将近有80多个类,但是这些类可以分为三组 基于字节操作的I...而这也是java的I/O类库中存在Filter(过滤器)类的原因所在,Filter作为所有装饰类的基类。...提高速度 DataInputStream允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型 举个简单使用过滤器进行读取一个文件的内容并输出,例子如下: publicstaticvoidmain...下面就举个创建 FileChannel 的例子。...FileChannelin=newFileInputStream("fileName").getChannel();复制代码 NIO的使用 我会举一个简单的例子来演示如何使用NIO对文件进行复制的操作。
和 java.io.InputStream 区别 java.io.Reader 和 java.io.InputStream 组成了 Java 输入类。...在 Java 中,有不同类型的 Reader 输入流对应于不同的数据源: FileReader 用于从文件输入; CharArrayReader 用于从程序中的字符数组输入; StringReader...相应的,java.io.Writer 和 java.io.OutputStream 也有类似的区别。 1、Java技术支持两种数据类型的流 InputStream和OutputStream:字节流。...6、 对象串行化 java.io.Serializable接口支持将一个Java技术对象存放到一个流中。 将一个对象存放到某种类型的永久存储器上称为”保持”。...java.io.Serializable接口没有任何方法,它只作为一个”标记”,用来表明实现了这个接口的类可以串行化。 类中没有实现Serializable接口的对象不能被保持。
领取专属 10元无门槛券
手把手带您无忧上云