readline

读取文件,将文件中的数据一行行的取出。

南笙酒味 提交于 2020-07-28 01:11:46
方式1:   通过BufferedReader的readLine()方法。 /** * 功能:Java读取txt文件的内容 步骤: *1:先获得文件句柄 *2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 *3:读取到输入流后,需要读取生成字节流 *4:一行一行的输出。readline()。 *备注:需要考虑的是异常情况 * * @param filePath * 文件路径[到达文件:如: c:\x.txt] * @return 将这个文件按照每一行切割成数组存放到list中。 */ public static List<String> readTxtFileIntoStringArrList(String filePath) { List<String> list = new ArrayList<String>(); try { String encoding = "GBK"; File file = new File(filePath); if (file.isFile() && file.exists()) { // 判断文件是否存在 InputStreamReader read = new InputStreamReader( new FileInputStream(file), encoding);// 考虑到编码格式 BufferedReader

真的简单,文本文件逐行处理–用java8 Stream流的方式

|▌冷眼眸甩不掉的悲伤 提交于 2020-07-27 22:43:10
本文中为大家介绍使用java8 Stream API逐行读取文件,以及根据某些条件过滤文件内容 1. Java 8逐行读取文件 在此示例中,我将按行读取文件内容并在控制台打印输出。 Path filePath = Paths.get("c:/temp", "data.txt"); //try-with-resources语法,不用手动的编码关闭流 try (Stream<String> lines = Files.lines( filePath )) { lines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace();//只是测试用例,生产环境下不要这样做异常处理 } 上面的程序输出将在控制台中逐行打印文件的内容。 Never store password except in mind. 2.Java 8读取文件–过滤行 在此示例中,我们将文件内容读取为Stream。然后,我们将过滤其中包含单词"password"的所有行。 Path filePath = Paths.get("c:/temp", "data.txt"); try (Stream<String> lines = Files.lines(filePath)){ List<String> filteredLines =

python每日一练之读写txt文件

谁说胖子不能爱 提交于 2020-07-27 14:50:22
1.获取文件操作对象   读写文件就是请求操作系统打开一个文件对象,然后通过系统提供的接口读写数据。 f = open(file, mode= ' r ' , buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 上述代码获取了一个文件对象f,注意操作结束后,要f.close()关闭文件 file:文件的路径 mode:文件打开模式 常见的模式有 模式 描述 b 二进制模式 r 以只读方式打开,指针放在文件开头 r+ 读写方式打开,指针放在文件开头 rb 已二进制打开一个文件,只读 rb+ 二进制打开一个文件,读写 w 写的方式打开一个文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件 w+ 读写的方式打开一个文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件 wb+ 读写的方式打开一个二进制文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件 a 追加的方式打开文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件 a+ 追加的方式打开文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件 ab+ 追加的方式打开二进制文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件 buffering:设置缓冲

BIO学习

匆匆过客 提交于 2020-07-27 08:22:18
1. BIO介绍 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 2. 代码介绍BIO 2.1 简单通信 实现一个简单功能,服务器端启动之后等待客户端连接,连接之后互相通信就结束 2.1.1 服务器端 public class Server { public static void main(String[] args) throws IOException { //服务器端绑定888端口 ServerSocket ss = new ServerSocket(888); //这里一直循环是一直可以等待处理客户端请求,可以处理多个客户端请求,但是一次只能处理一个 while(true) { //阻塞方法,一直等待客户端接入 Socket s = ss.accept(); //客户端接入后就开启一个线程与客户端通信 new Thread(() -> { handle(s); }).start(); } } static void handle(Socket s) { try { byte[] bytes = new byte[1024]; int len = s.getInputStream().read(bytes); System.out

FFMpeg.AutoGen(1)讲解官方example代码:Main函数、 解码

时光怂恿深爱的人放手 提交于 2020-07-27 04:25:24
FFMpeg 是一套C编译的开源工具集。主要用于视频处理,可以编解码视频,建立流媒体服务器等等。官方网站: http://ffmpeg.org/ FFMpeg.AutoGen 封装方法以方便C#调用FFmpeg。项目地址: https://github.com/Ruslan-B/FFmpeg.AutoGen 。可以使用NuGet安装。 AutoGen只是封装调用FFmpeg,程序还是需要下在FFmpeg工具放在程序目录里,且版本要对应。 笔者用FFMpeg.AutoGetn的官方example代码介绍一下FFMpege如何使用(源代码在其github库里)。 example是一个命令行程序,mian函数里面的代码如下。我将通过此函数调用顺序介绍ffmpeg.AutoGet的用法。 目录: 1.注册FFmpeg库。实际就将ffmpeg库的地址告诉autogen 2.ffmpeg 一些调用其的配置(可选) 2.1 配置日志输出 2.2配置硬件解码器ffmpeg是支持硬解的.具体支持类型可以参考ffmpeg官方文档。转载网友摘录的ffmpeg支持硬解编码的枚举。 3.解码函数DecodeAllFramesToImages 3.1 VideoStreamDecoder类 3.2 VideoFrameConverter类 3.3 相关数据结构AVPacket,AVFrame

Java的IO流以及输入流与输出流的异同

吃可爱长大的小学妹 提交于 2020-07-26 22:54:20
一:流的基本概念: Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 数据流是 Java 进行 I/O 操作的对象,它按照不同的标准可以分为不同的类别。 按照流的方向主要分为输入流和输出流两大类。 (注:输入输出流是相对于计算机内存来说的) 数据流按照数据单位的不同分为字节流和字符流。 (注:字节流是8位通用字节流;字符流是16位Unicode字符流) 按照功能可以划分为节点流和处理流。 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛: 标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流等等,java中将输入输出抽象称为流,就好像水管,将两个容器连接起来。将数据冲外存中读取到内存中的称为输入流,将数据从内存写入外存中的称为输出流。 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。 总结的基本概念如下: 二: 数据流: 一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。 1)

day8___基础(python文件操作)

二次信任 提交于 2020-07-26 06:04:57
一、文件的操作 ​ 文件路径 :D:\test1.txt (你想操作这个文件,必须要知道这个文件的位置) ​ 编码方式 :utf-8,gbk,gb2312.... (昨天刚讲完编码,文件其实就是数据的存储,数据存储你需要编码知道这个数据是以什么编码存储的) ​ 操作模式 :只读,只写,追加,写读,读写.... f1 = open('D:\\test1.txt', encoding='utf-8', mode='r') content = f1.read() print(content) f1.close() 接下来就是对上面代码的解释: f1: 就是一个变量,一般都会将它写成f,f_obj,file,f_handler,fh,等,它被称作文件句柄。 open:是Python调用的操作系统(windows,linux,等)的功能。 'd:\test1.txt': 这个是文件的路径。 mode: 就是定义你的操作方式:r为读模式。 encoding: 不是具体的编码或者解码,他就是声明:此次打开文件使用什么编码本。一般来说:你的文件用什么编码保存的,就用什么方法打开,一般都是用utf-8(有些使用的是gbk)。 f.read():你想操作文件,比如读文件,给文件写内容,等等,都必须通过文件句柄进行操作。 close(): 关闭文件句柄(可以把文件句柄理解成一个空间,这个空间存在内存中

java读取txt文件行的两种方式对比

别说谁变了你拦得住时间么 提交于 2020-07-24 17:19:55
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; /** * 读取txt文件的行 * */ public class FileUtil { /** * java.nio.file.Files方式 * @param filePath * @return */ public static List<String> parseFileContext(String filePath) { System.out.println( "filePath="+ filePath); List <String> dataArray = null ; try { dataArray = Files.readAllLines(Paths.get(filePath)); } catch (IOException e) { e.printStackTrace(); } return dataArray

Is there a nice way of handling multi-line input with GNU readline?

ⅰ亾dé卋堺 提交于 2020-07-17 05:38:45
问题 My application has a command line interface, and I'm thinking about using the GNU Readline library to provide history, an editable command line, etc. The hitch is that my commands can be quite long and complex (think SQL) and I'd like to allow users to spread commands over multiple lines to make them more readable in the history. Is it possible to do this in readline (maybe by specifying a difference between a newline and an end of command)? Or would I be better off implementing my own