io流

Java IO流,详细介绍,及用法

不问归期 提交于 2019-11-27 21:58:48
三种IO共存:BIO、NIO、AIO Java BIO BIO 全称Block-IO 是一种同步且阻塞的通信模式。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。 Java NIO NIO 全称Non-Block IO 是Java SE 1.4版以后,针对网络传输效能优化的新功能。是一种非阻塞同步的通信模式。 NIO 与原来的I/O有同样的作用和目的,他们之间最重要的区别是数据打包和传输方式。原来的I/O 以流的方式处理数据,而NIO 以块的方式处理数据。 面向流的I/O系统一次一个字节的处理数据。一个输入流产生一个字节的数据,一个输出流的消费一个字节的数据。 面向快的I/O系统以快的形式处理数据。每一个操作都在一步中产生或者消费一个数据块。按快处理数据比较流式的的字节处理数据速度要快得多。但是面向块的I/O 缺少一些面向流的I/O所具有的优雅性和简单性。 Java AIO AIO 全称Asynchronous IO 是异步非阻塞的IO。是一种非阻塞异步的通信模式。 在NIO的基础上引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。 三种IO的区别: BIO:同步阻塞I/O模式。 NIO:同步非阻塞模式。 AIO:异步非阻塞I/O模式。 同步阻塞模式:在这种模式下,我们的工作模式是先来到厨房,开始烧水

java的Io流机制的学习

穿精又带淫゛_ 提交于 2019-11-27 18:48:10
IO流机制 File类的使用 File类的构造方法 File(URI uri) File(String pathname) File(File parent, String child) File(String parent, String child) File类的常用方法 boolean exists():判断文件是否存在 boolean createNewFile() :创建一个新文件,只能创建一个文件,不能创建目录(文件夹),创建时先判断文件 是否存在 ,不存在则创建并返回true, 存在则返回false. File getAbsoluteFile() File 类型的绝对路径File文件形式,相当于 File file =new File(绝对名称), String getAbsolutePath() String类型的绝对路径的字符串形式 String getName() : 获取的是路径的最后一级的名称 String getPath() //获取的是相对路径的名称:打File对象事调用的就是getPath()方法 String Parent() //返回当前文件的上一级目录,若没有上一级目录返回null bolean isDirectory() //判断是否是文件 bolean isFile() //判断是否是文件夹 bolean delete()/

IO流之ZipInputStream和ZipOutputStream的认识及使用

冷暖自知 提交于 2019-11-27 16:41:24
转载 https://blog.csdn.net/weixin_39723544/article/details/80611810 工具类 import java.io.*;import java.util.zip.*;public class ZipUtils { /** * Default buff byte size * */ private static final int DEFAULT_BUFF_SIZE = 1024; /** * Default basedir value * */ private static final boolean DEFAULT_DIR = false; public static void decompress(String srcPath) throws Exception { decompress(new File(srcPath)); } public static void decompress(File srcFile) throws Exception { File baseFile = srcFile.getParentFile(); decompress(srcFile, baseFile); } public static void decompress(String srcPath, String destPath)

IO流的工具类

心已入冬 提交于 2019-11-27 15:52:12
1、需要先导入jar包: FilenameUtils import org.apache.commons.io.FilenameUtils; public class FilenameUtilesDemo { public static void main(String[] args) { String name = FilenameUtils.getExtension("001.txt"); System.out.println(name);// 文件的扩展名 String Filename = FilenameUtils.getName("001.txt"); System.out.println(Filename);//文件名 boolean b=FilenameUtils.isExtension("001.txt", "java"); System.out.println(b); } } 2、FileUtils 文件夹的复制: import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; public class FileUtilsDemo { public static void main(String[] args) throws IOException

IO流——File类(文件流类)

痞子三分冷 提交于 2019-11-27 13:12:25
java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流。 File类 的构造方法: 1、File类创建对象: 利用前三个构造方法创建File类对象: import java.io.File; public class FileDemo { public static void main(String[] args) { String path1 = "E:\\IO流\\java1";// 第一个参数为对象,第二个为路径 File f1 = new File(path1); File f11 = new File(f1, "001.txt"); System.out.println(f11); String path2 = "E:\\IO流\\java2";// 要写两个斜线,第一条把第二条转义 File f2 = new File(path2); System.out.println(f2); String path3 = "E:\\IO流\\java3"; String path4 = "002.txt"; File f3 = new File(path3, path4);// 将一个路径分为两部分,灵活性增强 System.out.println(f3); } }

详细讲解JAVA中的IO流

偶尔善良 提交于 2019-11-27 13:08:23
一、流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端 ,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。 流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流。用户可以从输入流中读取信息,但不能写它。相反,对输出流,只能往输入流写,而不能读它。 实际上,流的源端和目的端可简单地看成是字节的生产者和消费者,对输入流,可不必关心它的源端是什么,只要简单地从流中读数据,而对输出流,也可不知道它的目的端,只是简单地往流中写数据。 形象的比喻 ——水流 ,文件 ====== 程序 ,文件和程序之间连接一个管道,水流就在之间形成了,自然也就出现了方向:可以流进,也可以流出.便于理解,这么定义流: 流就是一个管道里面有流水,这个管道连接了文件和程序。 JAVA IO网络API TCP 协议中,JAVA通过Socket和ServerSockt来数据通信。 UDP协议中,JAVA通过DatagramSocket来数据通信。 URL+URLConnection来创建Http服务连接,进行数据通信。 不管基于何种的数据通信,其网络的数据通信都是通过JAVA

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

白昼怎懂夜的黑 提交于 2019-11-27 12:06:28
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 对象读取一个字符要使用 read() 方法,它的语法如下: int read( ) throws IOException 每次调用 read()

(三十一)、Java IO流总结

我怕爱的太早我们不能终老 提交于 2019-11-27 10:06:12
IO流概述 在这一小节,我会试着给出Java IO(java.io)包下所有类的概述。更具体地说,我会根据类的用途对类进行分组。这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得更加容易。 输入和输出 术语“输入”和“输出”有时候会有一点让人疑惑。一个应用程序的输入往往是另外一个应用程序的输出 那么OutputStream流到底是一个输出到目的地的流呢,还是一个产生输出的流?InputStream流到底会不会输出它的数据给读取数据的程序呢?就我个人而言,在第一天学习Java IO的时候我就感觉到了一丝疑惑。 为了消除这个疑惑,我试着给输入和输出起一些不一样的别名,让它们从概念上与数据的来源和数据的流向相联系。 Java的IO包主要关注的是从原始数据源的读取以及输出原始数据到目标媒介。以下是最典型的数据源和目标媒介。 文件 管道 网络连接 内存缓存 System.in, System.out, System.error(注:Java标准输入、输出、错误输出) 下面这张图描绘了一个程序从数据源读取数据,然后将数据输出到其他媒介的原理。 流 在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据流。你既可以从流中读取数据,也可以往流中写数据。 流与数据源或者数据流向的媒介相关联。在Java IO中流既可以是字节流(以字节为单位进行读写)

python基础第七章IO流

偶尔善良 提交于 2019-11-27 05:55:23
操作文件和目录 python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r“c:\python”) 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir() 判断是否是绝对路径:os.path.isabs() 检验给出的路径是否真地存:os.path.exists() 返回一个路径的目录名和文件名:os.path.split() eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt') 分离扩展名:os.path.splitext() 获取路径名:os.path.dirname() 获取文件名:os.path.basename() 运行shell命令: os.system() 读取和设置环境变量:os.getenv() 与os.putenv() 给出当前平台使用的行终止符:os.linesep Windows使用'\r\n'

IO流的高级应用

回眸只為那壹抹淺笑 提交于 2019-11-27 05:36:54
/*--> */ /*--> */ IO流的高级应用: BufferedReader: 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取, 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了,默认缓冲的大小是8K,如果默认缓冲区的大小不足以满足需求时可以自定义缓冲的大小。 public static void main(String[] args) throws IOException { Reader reader=new FileReader("D:\\hello.txt"); BufferedReader br=new BufferedReader(reader); String line=null; while((line=br.readLine())!=null) { System.out.println(line); } reader.close(); br.close(); } BufferedWriter: BufferedWriter: 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。 public class Demo2 { public static void main(String[] args)