之前的博客梳理了基本的字节流和字符流:Java字节流和字符流详解,本文主要讲基于基础的字节字符流做转换编码的转换流。...文章目录 ♂️字符编码和字符集 字符编码 ♀️字符集 ⛹编码引出的问题 InputStreamReader类 构造方法 指定编码读取 OutputStreamWriter类 构造方法 指定编码写出...可见,当指定了编码,它所对应的字符集自然就指定了,所以编码才是我们最终要关心的。...InputStreamReader类 转换流java.io.InputStreamReader,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定的字符集将其解码为字符。...流处理之高效读写的缓冲流 Java流处理之序列化和打印流 File类详解(获取文件名称、大小、路径、创建等)
递归方法,实现查找目录中以.java为后缀的文件路径,并存入文本文件中 定义一个静态方法fileToLine(),传入参数:File对象目录,List集合对象(List 这样做的目的是因为这个方法会被递归...files 循环这个数组for(File file : files),循环中 判断是否是目录file.isDirectory为真,进行递归fileToLine(file,list) 不是目录,判断后缀为”.java...String路径 调用BufferedWriter对象的newLine()方法,写入一个换行 调用BufferedWriter对象的flush()方法,刷新缓存 注意异常的捕获,关闭缓存 import java.io.BufferedWriter...; import java.io.File; import java.io.FileWriter; import java.util.ArrayList; import java.util.List;...} else { // 判断后缀,这里可以加入其他判断 if (file.getName().endsWith(".java
):通过指定的字符集解码字节数组 * byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码为字节数组 * * 编码:把看得懂的变成看不懂的 *...:默认编码,GBK OutputStreamWriter(OutputStream os,String charsetName):指定编码。...,String charsetName):根据指定编码把字节流数据转换为字符流 * 把字节流转换为字符流。...* 字符流 = 字节流 +编码表。...; import java.io.FileWriter; import java.io.IOException; /* * 由于我们常见的操作都是使用本地默认编码,所以,不用指定编码。
* 文本文件说明使用字符流。...// 释放资源 br.close(); // 遍历集合 for (String s : array) { System.out.println(s); } } } F:复制单级文件夹中指定的文件并修改名称...; import java.io.IOException; /* * 需求:复制指定目录下的指定文件,并修改后缀名。...* 指定的文件是:.java文件。...* 指定的后缀名是:.jad * 指定的目录是:jad * * 数据源:e:\\java\\A.java * 目的地:e:\\jad\\A.jad * * 分析: * A:封装目录
Java 中 IO 流分为几种? 按照流的流向划分,可以分为输入流和输出流; 按照操作单元划分,可以划分为字节流和字符流; 按照流的角色划分为节点流和处理流。...Java IO 流共涉及 40 多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java I0 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。...回答:字符流是由 Java 虚拟机将字节转换得到的,问题就出在这个过程还算是非常耗时,并且,如果我们不知道编码类型就很容易出现乱码问题。...NIO (Non-blocking/New I/O): NIO 是一种同步非阻塞的 I/O 模型,在 Java 1.4 中引入了 NIO 框架,对应 java.nio 包,提供了 Channel , Selector...在 Java 7 中引入了 NIO 的改进版 NIO 2,它是异步非阻塞的 IO 模型。
1.基本概念 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。...构造方法: // 创建一个新的缓冲输出流,以将数据写入指定的底层输出流 BufferedOutputStream(OutputStream out) // 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流...= -1) { System.out.print((char) len);//爱生活,爱Android } reader.close(); //指定编码 InputStreamReader reader...Android } reader.close(); 注:Eclipse默认使用GBK编码,test.txt文件所以是GBK编码,当指定utf-8编码时所以会乱码。...out, String charsetName) 特有方法: //返回此流使用的字符编码的名称 String getEncoding() (3).字符缓冲流(高效流) 1).BufferedReader
简介 在前面的两篇文章中:Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)介绍了如何MediaCodec进行H264硬编码,然后将编码后的数据封装到flv文件中。...有了上面两篇文章的基础后,接下了就是整合,在Android平台下使用MediaCodec进行硬编码,然后使用RTMPDump进行推流。 先来张效果图: ?...主要增加三个方法:建立连接,推流数据,释放连接。...我们还是使用Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)里的代码。...硬编码一(H.264进行flv封装)是将数据直接写到文件中,现在将数据推流出去。
> it = a.iterator(); while(it.hasNext()){ String temp = it.next(); if(条件){ it.remove(); } } 集合初始化,尽量指定集合初始化大小
Java 文件样式约定 所有的 Java(*.java) 文件都必须遵守如下的样式规则: 1) 版权信息 版权信息必须在 java 文件的开头,比如: /** * Copyright 2016...*;import java.util.Observable;import hotlava.util.Application; 这里 java.io.* 是用来代替InputStream and OutputStream...Java编码其它约定 n 文档化 必须用 javadoc 来为类生成文档。不仅因为它是标准,这也是被各种 java 编译器都认可的方法。...,所以使用java.util.Vector类在性能上会有所减低。...n 尽量使用接口而不是一个具体的类 比方如下需求,给定一个SQL语句,返回一个对象的列表,实现中用java.util.ArrayList实现,于是定义方法为: public java.util.ArrayList
Java编码规范是指为了提高代码的可读性、可维护性、可扩展性等方面的规范性要求。 源文件名 每个源文件只包含一个公共类或接口。 源文件名应该与公共类或接口的名称完全匹配。...源文件名应该以.java作为扩展名。 示例:假设有一个名为Person的公共类,那么源文件名应该为Person.java。 编码 使用 UTF-8 编码。 每行不超过 80 个字符。...编码规范的一部分,可以参考Oracle官方文档 异常处理 不要捕获 Throwable,应该只捕获实际需要处理的异常。...编码规范的一部分,具体内容可以根据需要和实际情况进行适当调整。...遵循Java编码规范可以使代码更加易于阅读、理解和维护,提高代码的质量和可靠性。
java编码规范(日常编码总结,规范项目组员有统一的规范,方便合作,查错,重构等)当你抛弃规范随心所意的写代码时,等你之后再回来阅读时真有的一种全部删掉重写的冲动。...源代码文件以文件内容中的最顶层的Java类命名,而且大小写敏感,文件扩展名为 .java,同时,文件的编码格式统一为UTF-8。 12....├── uparm │ ├── UparmManager.java │ ├── bean │ │ ├── ComposeBean.java │ │ └── XilianBean.java... ReqAddQhFailNumHandler.java │ │ ├── ReqDecomposeHandler.java │ │ └── ReqZyqhHandler.java Field...相关资料 阿里巴巴Java开发手册v1.2.0-1.pdf 阿里巴巴java编程规范2017版.pdf Android & Java 书写简洁规范的代码 https://github.com/xiaomoinfo
UTF-8的好处是节省了空间,但编码效率降低了,即时间换空间。 UTF-16 UTF-16是双字节编码,属于定长编码。...Java就是使用的这个编码来存储字符,中文和英文都是两个字节(即char这个基础数据类型),所以Java是双字节编码。 UTF-16LE,使用两个字节进行存储的小端编码。...UTF-16,没有指定后缀,即不知道其是大端还是小端,所以需要用四个字节来存储,开始的两个字节表示该字节数组是大端还是小端。即FE FF表示大端,FF FE表示小端。...: 1 编码:GB18030;字节数 : 1 编码:ISO-8859-1;字节数 : 1 编码:UTF-8;字节数 : 1 编码:UTF-16;字节数 : 4 编码:UTF-16BE;字节数...;字节数 : 2 编码:GB18030;字节数 : 2 编码:ISO-8859-1;字节数 : 1 编码:UTF-8;字节数 : 3 编码:UTF-16;字节数 : 4 编码:UTF-16BE
1.序列化与反序列化 public class ObjectOutputStreamDemo { /** * 序列化流实质是使对象写入文件,或者在网络中传输 * 把对象按照流一样的方式存入文本文件...,或者在网络中传输 --写--序列化 * 反序列化,就是把文本文件中的流对象或者网络中的流对象还原成对象 --读--反序列化 */ public static void main(String...3.复制文件 public static void main(String[] args) throws IOException { Files.copy(Paths.get("a.java..."),new FileOutputStream("c.java")); } 4.集合写入文件 public static void main(String[] args) throws IOException...ArrayList(); arrays.add("hello"); arrays.add("word"); arrays.add("java
java零基础入门-高级特性篇(十一) IO 流 1 IO的故事可以从2000多年前的始皇帝开始讲起。自从秦始皇统一六国以后,书同文,车同轨,统一货币度量衡,简单的说就是制定了一个统一的标准。...针对这两种文件,java有两种IO流对应他们,那就是字节流和字符流。...上面说过在互联网时代,使用UTF-8编码传输文件可以减小文件体积,加快传输速度,但是在计算机本地,使用Unicode编码较多,java虚拟机为了在全世界的机器上使用,所以它使用的是Unicode编码方式...java中的IO流 java中的IO流体系比较庞大,涉及到很多类,但是常用的其实并不多,所以本文只会介绍最常用的部分。学会了常用的,其他的各位可以参考java的API,理解起来没有难度。...下面来介绍一下java中的IO流体系。 ? 体系 IO流主要分为两大类,一种是字符流,用来对文件进行编码,输出人类可以看懂的文字。另一种是字节流,用来传输各种软件可以识别的文件。
#include #include #include HTTPHTMLHeader.h> 如果使用HTTPHTMLHeader则不会指定编码: int main() { cgicc...::Cgicc cgi; std::cout << cgicc::HTTPHTMLHeader(); // 这里输出的只是:Content-Type:text/html 如果要指定编码,
字节流虽然可以操作任何的数据形式,但是对于占用多个字节的字符却不是很方便,需要知道,所以在JAVA中有专门提供了对于字符流的两个抽象类Reader和Writer 分类: IO流按照操作对象:字节流和字符流...按照流的方向分:输入流和输出流 ?...主要的流的体系图:每个输入流都有相应的输出流 在抽象类 Input/OutputStream ReaderWriter 后面跟着具体的实现子类 ?...字符流 字符流主要对于处理文本内容的读写十分的方便,按照字符的输入和输出和字节流操作上没有区别,但是在读取和写入时的操作单位不再是byte。 ?...(FileFilter filter) File[] listFiles(FilenameFilter filter) ***** 创建文件夹 boolean mkdir() ***** 创建文件 指定目录中创建指定前缀和后缀的文件
一、通过BufferedReader和BufferedWriter来读写文件 使用缓冲流的好处是,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来。...package org.example.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File...; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import...void read() throws FileNotFoundException, IOException { File file = new File("E:\\a.txt");// 指定要读取的文件...= -1) { out.write(bb, 0, n);// 写入到输出流 } out.close();// 关闭流
前言JDK的发行版本都已经衍生至19了,这个从8就引入的Stream流应当是属于Java程序员基操了,但是面试最近遇到开发经验3年的工程师,对它似乎不是很熟悉,让我大吃一惊。...二、如何创建流想要使用Stream,首先需要创建一个流,最常见的是直接调用集合的java.util.Collection#stream方法 private void createByCollection...这些流操作定义之后,在程序中是怎么调用的定义的lambda表达式的?...例如在java.util.stream.ReferencePipeline抽象类中有对Stream接口collect的实现,方法由final修饰,不在支持重写。...最大的功劳当属Java8新提供的类——Collectors收集器。
集合 import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.List; import java.util.stream.Stream...import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import...import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.List; import java.util.stream.IntStream...; import java.util.List; import java.util.Optional; import java.util.stream.Stream; public class MethodTest...import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.Collection; import java.util.List
领取专属 10元无门槛券
手把手带您无忧上云