IO流大家肯定不陌生,简单整理了一下常用IO流基本用法,其他的IO流还有很多以后有时间在整理。...1.基本概念 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。...2.IO流的分类 图示:(主要IO流) 3.字节流 (1).字节流基类 1).InputStream InputStream:字节输入流基类,抽象类是表示字节输入流的所有类的超类。...System.out.print((char) i + " ");// A B C D } //关闭IO流 inputStream.close(); // 读取f盘下该文件f://...,提高了操作效率,IO流使用完毕一定要关闭。
简短的perl程序能够实现大功能。 perl是如何做到的呢? 1....特殊语法 利用一些正常情况下没有含义的语法,如while(){}. 如果按照正常的语法,这个定法的意义是:读取一行文本,然后丢弃。 ...对于一些常用语法的简洁写法 如通过qw定义一个字符串list,可避免写引号。 简短的好处? ...简短,再加上perl与shell结合非常好,可以在命令行上直接写出简短又功能强大的代码。 一个常用用法: find . |perl -e 'while(){...}' ...处理标准输入的每一行文本。'...'表示每行的处理代码。 通过动态声明一个函数,省略while,只提供每行的处理代码,可以进一步节省字节。 process_each_line.pl #!
转自:最代码 确实是12306的最核心代码呀 alert("当前访问用户过多,请稍后重试!")...style逆袭了 public class ZuiNiu { public static void main(String[] args) { System.out.println("这就是最牛的Java
确实是12306的最核心代码呀 alert("当前访问用户过多,请稍后重试!")...style逆袭了 public class ZuiNiu { public static void main(String[] args) { System.out.println("这就是最牛的Java
什么叫流 流就是程序和设备之间嫁接起来的一根用于数据传输的管道,这个管道上有很多按钮,不同的按钮可以实现不同的功能! 这根带有按钮的用于数据传输的管道就是流!...四大基本抽象流 字节输入流:InputStream 字节输出流:OutputStream 字符输入流:Reader 字符输出流:Writer 注:抽象流实质上就是抽象类,实际上使用到的是继承于它们的子类...按功能不同可以分为节点流(原始流)和处理流(包裹流) 注:节点流为可以从一个特定的数据源(节点)读写数据(如文件、内存) 处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能...字节流和字符流的区别 FileInputStream、FileOutputStream为字节流,一次读取一个字节,可用于所有格式的读写,但是在控制台输出中文字符会有乱码 FileReader、FileWriter...为字符流,一次读取一个字符(两个字节),可用于文本文件的读写,但是不能用于非文本文件的读写,因为非文本文件就不是字符(编码问题)
Class Objects 类对象是类的特定实例。创建对象的唯一方法是使用类的内置new()方法调用类构造函数。...Class Handles 每次调用new()方法时,它都会构造一个新的类对象,该方法会返回类对象的类句柄。句柄是对类对象的间接引用,就像指向内存中地址的指针一样。...Class Variables 类变量是存储引用特定class类型的特定类对象的类句柄的地方。 有点拗口~ 声明类变量不会创建类对象,只会创建保存类句柄的空间。...这与其他数据类型形成鲜明对比,在其他数据类型中,变量的声明会创建该类型的对象,并为你提供一个符号名称来引用这些对象。...如果你现在尝试访问ClassVar1.member1,你将收到一个空句柄引用错误,因为类变量的初始值是特殊值null。 关于句柄而不是指针的好处之一是,它们消除了访问未初始化的对象引用的可能性。
Java的IO是一个大知识点, 如果把它的知识点拆开来说的话估计能说一个星期,关于IO的体系可以看看下面这张图, (图片是网上找的,侵删) ?...这是很简单的一段代码,最终的输出结果是会生成一个 1KB的 text.text文件。 但如果我们把最后一行注释掉的话, //bos.flush(); 最终生成的 text.text大小会变成0....有时候会有这样的问题,当数据不足以填充缓冲区,而又需要往客户端传数据, 为了解决这个问题,就有了 flush的概念,将缓冲区的数据强迫发送。...没有实现 close()方法,所以会直接调用 FilterOutputStream的 close(), 而 FilterOutputStream的 close()方法会调用 flush()来输出缓冲区数据...实际开发中关于IO操作的,都强调最后要调用 close()方法, 上面的例子就是其中一个原因了。
Java类库的设计者通过设计大量的类来攻克这些难题,这些类就位于java.io包中。...在JDK1.4之后,为了提高Java IO的效率,Java又提供了一套新的IO,Java New IO简称Java NIO。它在标准java代码中提供了高速的面向块的IO操作。...本篇文章重点介绍Java IO,关于Java NIO请参考我的另两篇文章: Java NIO详解(一) Java NIO详解(二) 流 在Java IO中,流是一个核心的概念。...在Java IO中流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。 IO相关的媒介 Java的IO包主要关注的是从原始数据源的读取以及输出原始数据到目标媒介。...2.1 Java IO的类型 虽然java IO类库庞大,但总体来说其框架还是很清楚的。
IO框架图: Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是: 基于字节操作的 I/O 接口:InputStream 和 OutputStream...(字符输出流):表示文本文件(Windows 自带的记事本软件打开能看懂内容的文件) Java的常用输入、输出流 java.io包中的stream类根据它们操作对象的类型是字符还是字节可分为两大类:...; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream...; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter...; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter
本文主要是重新梳理了Java的IO模型,基于之前NIO的文章进行补充,为学习Netty做准备。 一、IO模型 1、什么是IO模型: 简单地说,就是用什么样的通道进行数据的发送和接收。...比如通道是阻塞的还是非阻塞的,是同步还是异步的。 2、Java支持的IO模型: java支持的IO模型有: BIO:就是JDK原生的IO,同步并且是阻塞的。...NIO:同步非阻塞的IO,服务端的实现模式为一个线程处理多个请求,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有IO请求就进行处理,下图中的selector就是这个多路复用器。...适用场景:连接数多且连接比较短,比如聊天服务器、弹幕系统、服务器之间的通讯等,编程比较复杂。 ? AIO:异步非阻塞的IO,JDK1.7开始出现的,目前还没得到广泛的应用。...selectNow方法,这个就是非阻塞的;NIO的非阻塞也就体现在这里),返回有事件发生的通道的个数; selector可以得到有事件发生的通道的selectionKey; 通过selectionKey
Java IO流 分类 java按照将流连接类型分为 节点流(低级流):是实际连接数据源与程序的“管道”,负责实际读写数据的流,读写一定是建立在节点流的基础上进行的 处理流(高级流):不能独立存在...文件流 java.io.FileInputStream java.io.FileOutputStream 常用的一类低级流的实现类,用来来接文件 对文件进行读写操作(功能上与RAF一致,但都有各自的优缺点...8K的字节数组, 并将读写的数据转换成块读写从而提高效率) 使用缓冲流复制文件 package io; import java.io.BufferedInputStream; import java.io.BufferedOutputStream...,这个过程叫做对象序列化 这组被序列化后的字节在经过文件流写入文件(写入磁盘)做长久保存的过程 叫做数据持久化 对象输出流示例 Person.java: package io; import java.io.Serializable...内部表示字符数据时都是用char表示(2字节) java.io.Writer java.io.Reader 上面两个类是抽象类,是所有字符输出流和字符输入流的超类 里面规定了读写字符相关的方法 转换流
基于字节的java.io.printSteam支持方便的打印方法,如print()和println(),用于打印原语和文本字符串。...示例 PrintStreamDemo package com.xgj.master.java.io.fileDemo.characterStreams; import java.io.FileNotFoundException...; import java.io.IOException; import java.io.PrintStream; import org.junit.Test; /** * * * @ClassName...pFile.close(); } } } } PrintWriterDemo package com.xgj.master.java.io.fileDemo.characterStreams...; import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import org.junit.Test
IO流 第一部分 (OutputStreamWriter BufferOutputStream) 转换流 超类为Reader和Writer 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节...它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。...先将字符交给转换流,然后转换流去查询指定的编码表,然后将查询后的对应编码表中的内容返回给对应的字节流,然后字节流进行对应的操作 OutputStreamWriter ?...子类可以直接操作文件,但是不能指定编码格式,默认使用系统默认的格式 FileReader fr = new FileReader("a.txt"); 缓冲流 提高输入输出的效率 分为字节缓冲流与字符缓冲流...readLine() 读取一行 , 只返回行的有效字符,不包含\r\n (即读出来的数据是一行) int lineNumber = 0;
一、我先讲讲java中的输出 (1)"println()"型 大部分人在java的过程中用到的输出语句最多的就是: System.out.println(); 这句话的意思是当你输出完一行数据之后,自动换行...)"型 学过过c语言的同学,看到"printf()"并不陌生,我们就是用这句话打印出了自己第一行hello world,没错,java中的"printf() 和c语言是完全一样的,都是用格式进行输出,同时...("我今年%d岁了”,a); 二、接下来再看看java中的输入 java中有一个专门的类包,原来管理用户的输入——Scanner 但是Scanner 是JDK1.5 新添的一个类,可以用该类创建一个对象...,首先我们要看程序的第一行有没有其它的语句,比如,package,如果有,就在后面加上这句话import java.util.Scanner 创建Scanner 对象:怎么创建?...,然后我们需要调用 Scanner 中的方法 用.nextXXX来读取数据,下面我就以一个示例来给大家展示一下输入: 示例: import java.util.Scanner;//1、导入包 public
java的IO机制主要分为BIO,NIO,AIO 一 BIO Block-IO:InputStream和OutputStream,Reader和Writer 1.1 BIO建立的连接 服务端创建一个...这种方式最大的坑在于,每次一个客户端接入,都是要在服务端创建一个线程来服务这个客户端的,这会导致大量的客户端的时候,服务端的线程数量可能达到几千甚至几万,几十万,这会导致服务器端程序的负载过高,有比较高风险...二 NIO NonBlock-IO:构建多路复用的、同步非阻塞的IO操作 ByteBuffer CharBuffer DoubleBuffer FloatBuffer IntBuffer LongBuffer...同步指的是在这个处理的过程中,我们还是要先读取数据,处理,再返回的,这个地方是个同步的过程。...2.4 NIO核心 NIO中select,poll,epoll的区别.png 三 AIO AIO demo 各IO机制的对比与选型 BIO适合连接数小且固定的架构,对服务器资源要求比较高
Java当中的IO IO的分类 第一种分:输入流和输出流 第二种分:字节流和字符流 第三种分:节点流和处理流 节点流处理数据,处理流是节点流基础上加工的。...流:在Java中输入和输出是通过流的类来实现的,Java提供了一套丰富的流类,可导入java.io,这样就可以完成输入和输出了,也同样可以实现网络操作等。 听到流,是不是很形象了呢?...文件类 FileInputStream类为输入操作,是文件输入流类 import java.io....java.io包中包含大量用来完成输入输出流的类。 Java中流的分类: 流的运动方向,可分为输入流和输出流两种。 流的数据类型,可以分为字节流和字符流。...导入输入/输出包,导入java.io.
一、流的分类 数据操作单位不同:字节流(8 bit),字符流(16 bit) 流向不同:输入流,输出流 流的角色不同:节点流,处理流 抽象基类 字节流 字符流 输入流 InputStream Reader...输出流 OutputStream Writer java中涉及到的io流基本都是从以上四个抽象基类派生出来的,其子类都是以其父类的名字做后缀。...br.close(); isr.close(); } } 八、打印流 PrintStream:字节打印流 PrintWriter:字符打印流 格式化输出 在JDK1.5之后,JAVA...又对PrintStream类进行了扩充,增加了格式化的输出方式,直接使用printf()方法就可以完成操作,但是在进行格式化输出的时候需要指定其输出的数据类型。...:用于写入对象 的信息和读取对象的信息。
I/O指的是输入输出,涉及到数据传输的地方都要用到I/O,如文件、网络、内存、标准输入/输出。...下面是使用Java I/O类需要注意的地方 InputStream和OutputStream是所有字节流的超类,read()和write()是基本方法,读写处理的都是字节。...如果想提高处理的速度,可以使用BufferedInputStream和BufferedOutputStream,这两个类通过缓冲区和数据流进行交互,以提高数据的处理效率 Reader和Writer是所有字符流的超类...RandomAccessFile:文件随机访问类,该类可以实现对文件的随机访问,既可以读也可以写。...它不是前面任何一个类的子类 在将数据均输出到数据流的时候,需要调用flush(),该方法的作用是将缓存区的数据输出到输出流中
1 IO流的分类 1.1 按数据流的方向:输入流、输出流 此输入、输出是相对于我们写的代码程序而言。 输入流:从别的地方(本地文件,网络上的资源等)获取资源输入到我们的程序中。...字节流和字符流的区别: 字节流读取单个字节,字符流读取单个字符(一个字符根据编码的不同,对应的字节也不同,如 UTF-8 编码是 3 个字节,中文编码是 2 个字节。)...字节流用来处理二进制文件(图片、MP3、视频文件),字符流用来处理文本文件(可以看做是特殊的二进制文件,使用了某种编码,人可以阅读)。简而言之,字节是个计算机看的,字符才是给人看的。...处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写,如BufferedReader。...处理流的构造方法总是要带一个其他的流对象做参数,一个流对象经过其他流的多次包装, 2 四大抽象类 IO所谓的四大抽象类就是:InputStream、OutputStream、Reader、Writer。
IO流 第一部分 (outputStream/InputStream Writer/Redaer) IO流对象中输入和输出是相辅相成的,输出什么,就可以输入什么....IO的命名方式为前半部分能干什么,后半部分是父类的名字....(FileOutputStream 文件输出流) java->JVM->OS 流对象使用的基本步骤 创建流的子类对象,绑定数据目的地(文件路径) 使用write方法写或read方法读 close()方法关闭流对象...操作的数据都是字节,定义了输出字节流的基本共性功能方法。...数组读取内容的方式 从文件中读取一个字符到数组中的初始位置,然后继续读,只到数组长度满了或者到了文件结尾 当第二次读的时候会将读取到的字符依次放入数组中 ?
领取专属 10元无门槛券
手把手带您无忧上云