一、概念 在Java中,文件的输入和输出是通过流(Stream)来实现的。...一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是 Internet 上的某个 URL。...字节流的处理单位是字节,通常用来处理二进制文件,例如音乐、图片文件等。...而字符流的处理单位是字符,因为Java采用Unicode编码,Java字符流处理的即为Unicode字符,所以在操作汉字、国际化等方面,字符流具有优势。...FileInputStream:把一个文件作为输入源,从本地文件系统中读取数据字节,实现对文件的读取操作。
上篇文章,我们介绍了 Java 的文件字节流框架中的相关内容,而我们本篇文章将着重于文件字符流的相关内容。...首先需要明确一点的是,字节流处理文件的时候是基于字节的,而字符流处理文件则是基于一个个字符为基本单元的。...基类 Reader/Writer 在正式学习字符流基类之前,我们需要知道 Java 中是如何表示一个字符的。...总结一下,我们花了三篇文章讲解了 Java 中的字节流和字符流操作,字节流基于字节完成磁盘和内存之间的数据传输,最典型的就是文件字符流,它的实现都是本地方法。...---- 文章中的所有代码、图片、文件都云存储在我的 GitHub 上: (https://github.com/SingleYam/overview_java)
* String getName() 返回由此File表示的文件或目录的名称。 * long length() 返回由此File表示的文件的长度。...* long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。 * boolean exists() 此File表示的文件或目录是否实际存在。...* boolean isFile() 此File表示的是否为文件 * boolean createNewFile() 当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。...查找文件 import java.io.File; import java.util.Scanner; public class DemoRecursion { //设置查找文件状态。...查找文件优化 import java.io.File; import java.io.FileFilter; import java.util.Scanner; public class DemoRecursion
reader.read(); // 读取一个字符,返回该字符代表的整数,若到达流的末尾,返回-1 字符流读数据 – 按字符数组读取 创建字符流读文件对象: Reader reader = new FileReader...– 按单个字符读写 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 创建字符流写文件对象: Writer writer...– 按字符数组读写 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 创建字符流写文件对象 : Writer writer...在实际生产环境中,流的操作非常的缓慢、耗时(打开资源、操作资源、关闭 资源),所以,实际生产环境中的流操作对效率的要求很高。...为此,Java的设计者们提供了高效的缓冲流供开发者使 用 ,下篇随笔介绍!
FileItem item = (FileItem) map.get(entry.getKey()); //读写文件 InputStream is = item.getInputStream(); String
Java中的IO操作涉及到的概念及相关类很多,很容易弄混,今天特来整理总结一下,并附上一份完整的文件操作的代码。...概念解析 读和写 流就是管道,向管道里面写数据用输出流:write 从管道里面读数据,用输入流:read 流的分类 流,按照不同的维度有不同的分类,按照从流中每次读取数据单位不同,划分为字节流字符流。...按照流-对应操作的角色的不同(是IO设备,还是其他流)是否能够直接向特定的IO设备如文件、网络、磁盘等,能够直接与这些进行读写的称之为节点流, 对节点流进一步封装的流,通过封装后的流来实现读写功能,处理流也被称为高级流...注意事项 1、流和数组不一样,不能通过索引读写数据。在流中,你也不能像数组那样前后移动读取数据,除非使用RandomAccessFile 处理文件。 2、流仅仅只是一个连续的数据流。...fileStreamOperate.copyFile(); } } 输入输出文件和执行结果 文件展示 执行结果 小结 通过本篇,我们学会了文件IO的一些常规操作方式,但是每次读取完文件后都需要在最后进行关闭流资源的
一、Stream流引入 Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。...1.根据List获取流 2.根据Set获取流 3.根据Map获取流 3.1根据Map集合的键来获取流...3.2根据Map集合的值获取流 3.3根据Map集合的键值对对象获取流...= Stream.of(arr); 四、Stream流的常用方法 Stream流的常用方法: 终结方法:返回值类型不再是Stream接口本身类型的方法,...,可以使用 java.util.stream.Collectors工具类中的静态方法: – public static Collector<T,
package copyfile; import java.io.*; public class copy { public static void main(String[] args) throws...newpath,boolean add) throws IOException{ FileReader fr = null; FileWriter fw = null; try { //实例化文件...,并判断文件是否存在 File oldfile=new File(oldpth); if(oldfile.exists()){ //初始化文件输入与输出流 fr=new...FileReader(oldpth); fw=new FileWriter(newpath,add); //定义存放读取数据的数组 char[] buffer=new char...[10]; int length; while(true){ int len=fr.read(buffer);//当文件读完,返回-1,否则返回读取文件长度
O(∩_∩)O哈哈~ 1.综述 一门成熟的语言肯定具备的几个模块:IO,通信,线程,UI...... Java作为一门成熟的程序语言,其IO流是比较复杂的。...字符流的父类Reader(读取到内存)和Writer(从内存输出),字节流的父类InputStream(读取到内存)和OutputStream(从内存输出),然后为了方便各种操作,比如为了文件操作,派生了文件流...几万字的读写就能看到差距。” OK,从以上可以看出,省时省力。 3.文件复制 文件复制的原理很简单,从硬盘读取文件流到程序,再从程序中输出流到目标文件,就完成了文件的复制。...事实上用到了java中的文件输入输出流。看着代码挺多,其实忽略那些try-catch及异常处理,很简单的几行代码。...,第二个参数是输出的目标文件(如果没有,则新建一个,实现文件的复制) 58 man.fileCopy("F:\\CodeWorkSpace\\java\\FileCopy\\src\\test0713
前言 友友们大家好,我是你们的小王同学 今天给大家带来的是java io流——创建文件 希望能给大家带来有用的知识 小王的主页:小王同学 小王的gitee:小王同学 小王的github:...小王同学 目录 文件 常用的文件操作 创建文件对象相关构造器和方法 相关方法 代码附上: 代码附上: 代码附上: 文件 文件在程序中是以流的形势来操作的 流:数据在数据源(文件)和程序(内存...)之间经历的路径 输入流:数据从数据源(文件)到程序(内存)的路径 输出流::数据从程序(内存)到数据源(文件)路径 常用的文件操作 创建文件对象相关构造器和方法 相关方法 new File(String...//这里的file对象,在java程序中只是一个对象而已 File file=new File(parentfile,filename); try {...文件在开发工作中需求还是很多的 还是要好好学!
文件流有很多类 FileInputStream FileoutputStream FileReader FileWriter BufferedInputStream BufferedOutputSteam...BufferReader BufferWriter 缓冲流 它们用来加快读取时间的, 然后直接看代码了: 第一个知识点是文件的创建和目录的创建: /* * File:既可以表示文件(.txt,doc...(temp); } } 输出结果:就是文件里面所有的字符 最后一定要加上这一句:in.close(); 这里我把它单独写出来,是因为显眼些:原因是 程序中打开的文件流io资源不属于内存里的资源...,java垃圾回收机制无法回收该资源,所以需要显是关闭文件的io流 比较标准的写法: public void testFileInputStream1() { // 1.创建一个File的对象...FileInputStream fis = null; try { fis = new FileInputStream(file); // 3.通过调用流的read()方法将文件中的内容读入
参考链接: Java基本输入和输出 在Android开发中,文件操作还是比较频繁的,本文主要记录下文件的加载,写入等相关操作的使用。 ...流的分类 在Java程序中操作文件,都是以流的形式来操作 首先按照流向可以分为输入流与输出流两种,这里的输入输出是站在内存的角度而言的,流向内存的为输入流,流出内存的为输出流按照传输的单位可以分为字节流与字符流...,字节流传输的是二进制字节,可操作任何类型的文件,字符流传输的是字符,只能用来读取文本文件 字节流 字节流有两个抽象的父类,InputStram和outputStream,本文主要记录文件的操作,其他的具体实现类暂不讨论...最后再根据将字节数组转换成需要的类型,最后也需要调用close释放资源 缓冲流 缓冲流相对于上述的字节流字符流并不是一个层面的东西,它并不具备直接操作文件的能力,而是要基于上述的字节流和字符流为基础...字符流主要包括FileWriter和FileReader,字符缓冲流BufferedWriter,BufferedReader,用法与上述的字节流基本一致,只不过调用read之后获取到的是字符类型,需要用
大家好,又见面了,我是你们的朋友全栈君。...直接上代码,函数使用说明详见Java API文档 import java.io.*; public class StreamDemo { public static void main(String...FileInputStream in=new FileInputStream(f); byte b[]=new byte[1024]; int cnt=0; cnt=in.read(b); //注意这里byte转化成String的方法
这篇文章主要介绍了java IO流文件的读写具体实例,有需要的朋友可以参考一下 引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽。...上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能找到,但自己总感觉不是很踏实,所以今天就抽空看了看java IO流的一些操作,感觉还是很有收获的,顺便总结些资料,方便以后进一步的学习...:处理声音或者图片等二进制的数据的流,比如InputStream 字符流:处理文本数据(如txt文件)的流,比如InputStreamReader 如何区分:可用高低端流来区分,所有的低端流都是字节流...catch (IOException e) { e.printStackTrace(); } } } 您可能感兴趣的文章: 简单总结Java IO中stream流的使用方法 Java编程中字节流与字符流...IO操作示例 Java基于IO流读取文件的方法 java的io操作(将字符串写入到txt文件中) java数字图像处理基础使用imageio写图像文件示例 Java IO流 文件传输基础
: 3 io流父类 3.1 字节流 3.2 字符流 3.3 总结 4 Java要掌握的流(16个) 5 java.io.FileInputStream 6 java.io.FileOutputStream...第三次读:一个字节,正好读到’中’字符的另外一半。 2.3 按照 字符 的方式读取数据的,一次读取一个字符. 这种流是为了方便读取 普通文本文件 而存在的, 这种流不能读取:图片、声音、视频等文件。...只能读取 纯文本文件, 连word文件都无法读取。 注意: 纯文本文件,不单单是.txt文件,还包括 .java、.ini、.py 。总之只要 能用记事本打开 的文件都是普通文本文件。 eg....2.4 综上所述:流的分类: 输入流、输出流 字节流、字符流 3 io流父类 3.1 字节流 java.io.InputStream 字节输入流 java.io.OutputStream 字节输出流...4 Java要掌握的流(16个) 文件专属: java.io.FileInputStream java.io.FileOutputStream java.io.FileReader java.io.FileWriter
Java IO 流 IO 流要说明白需要好几篇才行,今天我们先复习文件流。 2.1 一切皆字节 所有的文件(包括图片、音乐、视频),都是字节。所以字节流可以传输任意文件数据。...在操作流的时时,无论使用什么样的流对象,底层传输的始终为二进制数据。 2.2 什么叫文件流?...三、使用文件字节流 字节输出流 字节输入流 3.1 FileOutputStream java.io.FileOutputStream 类继承于 OutputStream 是文件输出流,用于将数据写出到文件...所以 Java 提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。...字符输入流 字符输出流,写文件 4.1 FileReader java.io.FileReader 类继承于 Reader 类,是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
利用文件输入流和输出流实现文件的复制, 下面的方法是:10字节10字节的复制,并且会把目标文件原来的内容给覆盖掉,如果目标文件原来有内容的话。...// 从指定的文件中读取内容,并写入到指定的文件内(相当于文件的复制) @Test public void testFileInputOutputStream() { File src = new...= -1) {//从源文件中的输入流中读 fos.write(b, 0, len);//每读10字节就写进去,写到目标文件 //特别注意:这种写法将会把目标文件的原来内容给覆盖掉.../**通过使用FileReader和FileWriter实现文件的复制 * Reader和Writer是一个字符流,也就是16bit * @param src * @param des...(可以调高文件复制的效率) * 对于输出的缓冲流,写出的数据会先在内存中缓存, * 使用flush()将会使内存中的数据立刻写出 */ @Test public void testBufferedInputStreamOutputStream
文件系列往期文章: java 字节流入门(文件流) java 字节流入门(内存数组流) 本文介绍如何将内存数组流的数据写入文件流中。...即将内存数组流中的数据通过文件流写到磁盘上,也叫flush,或持久化。毕竟内存是短暂的,磁盘才是永恒。 流就像管道,数据就像管道里的水。...管道最大的魅力就是可以连接,使水从一个管道流到另一个管道,流也一样。 之前我们分别介绍了文件流和内存数组流,既然他们是流,那就应该可以连接起来。那么如何从内存数组流写入文件流呢?...在 java 字节流入门(文件流)中,我们介绍了 FileOutputStream(FOS) 和 RandomAccessFile(RAF) 两种写文件的方式。...所以不管哪种文件流,用 BAOS 的 writeTo() 都是最好的。
参考链接: Java I / O流 Java中的I/O流及利用I/O流实现文件复制功能 一、I/O流的概念 1、 什么是I/O? ... 三、Java中的I/O流 1、梳理Java中I/O 首先Java中分为两大类流:一类是字节流,另一类是字符流; 每种大类的流都会对应输入流和输出流;即分别对应字节输入输出流和字符输入输出流...,那么就要一个字节或者一个字符的写出 四、I/O流的应用:文件复制功能 1、使用字节流进行文件复制 源代码: package com.huaixn.copy; import java.io.FileInputStream...: 博客:Java中的文件拷贝 在上面的文件复制功能代码中,使用字节流可以对.txt、.doc、.docx等文件类型进行拷贝 但使用字符流拷贝时,.doc以及.docx...文件类型拷贝后出现了乱码,至于其中的原因,可能是因为中文编码的问题导致,小伙伴们可以在自己的PC机上尝试读取不同类型的文件; 总结: 1、我初次接触Java中的流时,感觉很复杂,有事输出流,字节流等
一、通过字符流复制文件 import java.io.*; public class Test { public static void main(String args[]) throws IOException...(); int n; FileReader in = new FileReader("e:/java/code/aa.txt"); FileWriter ci = new FileWriter...("e:/java/code/copy.txt"); while((n=in.read())!...1) { ci.write(n); System.out.print((char)n); } in.close(); ci.close(); } } 二、通过字节流复制文件...import java.io.*; public class Test1 { public static void main(String args[]) throws IOException
领取专属 10元无门槛券
手把手带您无忧上云