io流

知识详解 IO流

断了今生、忘了曾经 提交于 2020-04-08 11:58:42
IO的介绍 什么是IO? IO的名称又来是Input与Output的缩写,也就是输入流和输出流。输入流用于从源读取数据,输出流用于向目标写数据。 可以从下列示例图来了解IO流: IO流使用 IO流对文件的操作主要分为字符流和字节流。 字符流 字符流有两个抽象类: Writer 和 Reader 类。 其对应子类 FileWriter 和 FileReader 可实现文件的读写操作。 BufferedWriter 和 BufferedReader 能够提供缓冲区功能,用以提高效率。 我记得在开始学习Java不久的时候, 在教程中会使用 字符流来进行字符的读取和写入。比较常见的就是,运行一个main方法,然后再控制台输入字符,获取输入的字符做一些逻辑控制之类。 例如: 在控制台输入字符,输入 quit 退出,输入其它的字符打印。 代码示例: public static void main(String[] args) { try { test (); } catch (IOException e) { e.printStackTrace(); } } private static void test () throws IOException { String str; // 使用 System.in 创建 BufferedReader BufferedReader br = new

【从零开始学Java笔记】IO流

耗尽温柔 提交于 2020-04-08 00:02:16
大家可以关注作者的账号,关注从零开始学Java笔记文集。也可以根据目录前往作者的博客园博客进行学习。本片文件将基于黑马程序员就业班视频进行学习以及资料的分享,并记录笔记和自己的看法。欢迎大家一起学习和讨论。 【从零开始学Java笔记】目录 File类 File:文件和目录路径名的抽象表示形式,File 类的实例是不可变的 构造方法: File(File parent, String child) File(String pathname) File(String parent, String child) 示例 import java.io.File; public class FileDemo { public static void main(String[] args) { //File(String pathname) :将指定的路径名转换成一个File对象 //File f = new File("D:\\a\\b.txt"); //File(String parent, String child) : 根据指定的父路径和文件路径创建File对象 //File f2 = new File("D:\\a","b.txt"); //File(File parent, String child) :根据指定的父路径对象和文件路径创建File对象 //File parent =

Java 流(Stream)、文件(File)和IO

こ雲淡風輕ζ 提交于 2020-04-03 10:31:59
Java 流(Stream)、文件(File)和IO   Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。   Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。   一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。   Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。   但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。 读取控制台输入   Java 的控制台输入由 System.in 完成。   为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流。   下面是创建 BufferedReader 的基本语法:     BufferedReader br = new BufferedReader ( new InputStreamReader ( System . in ) ) ;   BufferedReader 对象创建后,我们便可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串。 从控制台读取多字符输入   从 BufferedReader 对象读取一个字符要使用

java之IO流(file)

好久不见. 提交于 2020-04-02 20:27:40
一.IO概述 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。 当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作。 因此我们把这种输入和输出动作称为IO操作。 二. File类的构造函数 File(File parent,String child) 根据parent抽象路径名和child路径名字符串创建一个新的file实例 File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新的file实例 File(String parent,String child) 根据parent路径名字符串和child路径名字符串创建一个新的file实例 public class FileDemo { public static void main(String[] args) { //File构造函数演示 String pathName = "e:\\java_code\\day22e\\hello.java"; File f1 = new File(pathName);//将Test22文件封装成File对象。注意;有可以封装不存在文件或者文件夹,变成对象。 System.out.println(f1); File f2 = new File("e:\\java_code\\day22e","hello

021.14 IO流 管道流

亡梦爱人 提交于 2020-04-02 20:26:46
用的频率不高 特点:读取管道和写入管道对接,需要是用多线程技术,单线程容易死锁 使用connect方法连接两个流,实现边读编写,和node.js的管道流差不多 //##主函数位置 public static void main(String[] args) throws IOException { //创建两个管道对象 PipedInputStream pis = new PipedInputStream(); PipedOutputStream pos = new PipedOutputStream(); //将两个管道连接上 pis.connect(pos); new Thread(new Input(pis)).start();; new Thread(new Output(pos)).start(); } //定义输入任务 class Input implements Runnable{ private PipedInputStream pis; public Input(PipedInputStream pis) { super(); this.pis = pis; } @Override public void run() { byte[] buf = new byte[1024]; int len = 0; try { len = pis.read(buf);

JavaSE学习总结第21天_IO流3

泄露秘密 提交于 2020-04-02 20:26:10
21.01 转换流出现的原因及格式 由于字节流操作中文不是特别方便,所以,java就提供了转换流。 字符流 = 字节流 + 编码表 21.02 编码表概述和常见编码表 编码表:计算机只能识别二进制数据,早期又来是电信号,为了方便应用计算机,让它可以识别各个国家的文字,就将各个国家的文字用数字来表示,并一一对应,形成一张表,就是编码表。 简单的说编码表就是由字符及其对应的数值组成的一张表。 常见的编码表: ASCII:美国标准信息交换码,用1个字节的7位可以表示 ISO8859-1:拉丁码表,欧洲码表,用1个字节的8位表示 GBK2312:中国的中文编码表 GBK:中国的中文编码表升级,融合了更多的中文文字符号 GB18030:GBK的取代版本 BIG-5码 :通行于台湾、香港地区的一个繁体字编码方案,俗称“大五码” Unicode:国际标准码,融合了多种文字,所有的文字都用2个字节表示,Java中使用的就是Unicode码表 UTF-8:最多用3个字节来表示一个字符(能用一个字节表示的就用一个字节,一个表示不了就用两个,最多用三个字节) 21.03 String类中的编码和解码问题 1.public String(byte[] bytes, String charsetName)throws UnsupportedEncodingException 通过使用指定的 charset

[PHP] 重回基础(IO流)

孤者浪人 提交于 2020-04-02 20:25:50
IO 流用来处理设备之间的数据传输 java 对数据的操作是通过流的方式 java 用于操作流的对象都在 IO 包中 流按操作数据分为两种:字节流与字符流 流按流向分为:输入流,输出流 字符流 抽象基类: Reader Writer 文件操作,写 获取 FileWriter 对象, new 出来,构造参数: String 的文件名;此时会在指定目录下创建出文件,如果已存在,将会被覆盖;这个方法会抛出 IOException 异常 调用 FileWriter 对象的 write() 方法,将字符串写入到流中,参数: String 字符串 调用 FileWriter 对象的 flush() 方法,刷新流 FileWriter fw=new FileWriter("test.txt"); fw.write("hello3"); fw.close();//刷新并关闭 文件操作,读 获取 FileReader 对象, new 出来,构造参数: String 的文件名 调用 FileReader 对象的 read() 方法,返回读取的长度,如果到末尾会返回 -1 ,参数: char[] 字符数组 while 循环读取,条件:如果读取的长度不为 -1 组合字符串 FileReader fr=new FileReader("test.txt"); char[] buf=new char[2];

Java的递归、IO流

99封情书 提交于 2020-04-02 20:25:31
/*--> */ /*--> */ 一、递归 [递归]   1、 在函数自身内部,调用函数本身的方式,称为递归。    2、 注意: 递归包括递进去、归出来两步。     首先,依次执行【函数调自身语句】上半部分的代码,直到最里层。 {递进去}      然后,再从最里层开始,依次执行【函数调自身语句】下半部分的代码。 {归出来}   3、 递归必须通过合适的语句,及时的跳出。 否则,容易造成死循环。 public static int num=0;//2 public static void test(){ System.out.println("这是一个函数"); num++; if(num<=2){ test();//if()不成立不再调用自己 }//先执行三次 System.out.println("hahah");//执行完num大于2,hahah在执行之前的三次 } //test类 test(); 结果: 练习:5的阶乘 方法1: /** * 用递归实现5的! */ static int jie=1; public static long jiecheng(int n){ jie*=n; n--; if(n>=1){ jiecheng(5); } return jie; } //Test类: System.out.println(jiecheng(5)); 方法2:

[javaSE] IO流(RandomAccessFile)

怎甘沉沦 提交于 2020-03-26 09:18:58
随机访问文件,可以看作一个大型的 byte[] 数组,不算是 IO 体系中的一员,内部封装了字节输入输出流,可以设置权限,可以调整指针的位置 获取 RandomAccessFile 对象,构造参数: String 文件名称, String 的文件模式 调用 RandomAccessFile 对象的 write() 方法,参数: byte[] 数组 获取 RandomAccessFile 对象,构造参数: String 文件名称, String 的文件模式 调用 RandomAccessFile 对象的 seek() 方法,调整指针位置,参数: int 的索引位置 调用 RandomAccessFile 对象的 skipBytes() 方法,可以跳过指定索引,参数: int 索引位置 多线程下载的原理就是使用这个类 import java.io.RandomAccessFile; public class RandomAccessFileDemo { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { //写入 RandomAccessFile raf=new RandomAccessFile("test2.txt", "rw"); raf