轉載:File,FileInputStream,FileReader,InputStreamReader,BufferedReader

STM32平台下FreeModbus TCP协议栈集成指南 深入讲解在STM32平台如何移植和配置freemodbus协议栈,实现TCP通信功能。结合嵌入式开发细节,帮助开发者快速掌握freemodbus的应用与调试技巧。 阅读详情

File,FileInputStream,FileReader,InputStreamReader,BufferedReader 的使...

参考资料:

l          《 core java 》 12 章

l          使用 Java 操作文本文件的方法详解

http://java.ccidnet.com/art/3737/20041108/523627_1.html

l   FileReader 是什么类?和 FileInputStream 有什么不同???      

http://book.hackbase.com/ask2/ask107572.htm
自己的整理和领会:
引言:
    
C语言只需要一个File*就可以了,与C不同,java有一系列流类型,其数量超过60种。类库的设计者声称:“有

足够的理由为用户提供丰富的流类型的选择:这样做可以减少程序的错误。”例如,在C语言种,许多人认为“

将输出流写入一个只读模式的文件”是很常见的错误。(事实上,这并不常见。)

我们认为在C++语言中,流接口设计者避免程序出错的主要“工具”是小心谨慎的态度,在java语言中更是如

此。流库的高度复杂性迫使程序设计人员谨小慎微。
    
1.   File类
  
1 ) File 类介绍(《 core java 》 638 页)

File 类封装了对用户机器的文件系统进行操作的功能。例如,可以用 File 类获得文件上次修改的时间移动,

或者对文件进行删除、重命名。换句话说,流类关注的是文件内容,而 File 类关注的是文件在磁盘上的存储

File 类的主要方法有: getName(),getCanonicalFile(),lastModified(),isDerector(),isFile(),getPath()

等;

 

2 ) File 类与 FileInputStream 类的区别:

流类关注的是文件内容,而 File 类关注的是文件在磁盘上的存储。

 

File 不属于文件流 , 只能代表一个文件或是目录的路径名而已。

 

提示:(《 core java 》 639 页)

如果处理文件或者目录名,就应该使用 File 对象,而不是字符串。例如, File 类的 equals 方法知道一些

文件系统对大小写是敏感的,目录尾的“ / ”字符无关紧要。

 

自己的领会:

FileInputStream 类或者 FileReader 类的构造函数有多个,其中典型的两个分别为:一个使用 File 对象为

参数;而另一个使用表示路径的 String 对象作为参数;自己以前一直觉得直接用了 String 指定路径就可以

了,一直不明白为什么很多人都先构造一个 File 对象,现在终于明白了,“如果处理文件或者目录名,就应

该使用 File 对象,而不是字符串。”!

2.        FileInputStream 类

1 ) FileInputStream 类介绍:

以字节为单位(非 unicode )的流处理。字节序列即:二进制数据。与编码无关,不存在乱码问题。

FileInputStream 类的主要方法有:

Read (), read ( byte[] b ), read ( byte[],int off,int len ) ,available();

 

2 ) FileInputStream 类与 FileReader 类的区别:

两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别

呢?

l          Readers and Writers work only on line based character data, so plain text files.
For anything else, you MUST use Streams.

l          JDK5 API:

FileInputStream is meant for reading streams of raw bytes such as image data. For reading streams

of characters, consider using FileReader.

FileReader is meant for reading streams of characters. For reading streams of raw bytes, consider

using a FileInputStream .

l          FileInputStream :以字节流方式读取; FileReader :把文件转换为字符流读入;
l         InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。用Reader读取出

来的是char数组或者String ,使用InputStream读取出来的是byte数组。
l         Reader类及其子类提供的字符流的读取char(16位,unicode编码),inputStream及其子类提供字节

流的读取byte(8位),所以FileReader类是将文件按字符流的方式读取,FileInputStream则按字节流的方式

读取文件;InputStreamReader可以将读如stream转换成字符流方式,是reader和stream之间的桥梁
l   最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类。
  
l          FileInputStream 类以二进制输入 / 输出, I/O 速度快且效率搞,但是它的 read ()方法读到

的是一个字节(二进制数据),很不利于人们阅读。

l          而 FileReader 类弥补了这个缺陷,可以以文本格式输入 / 输出,非常方便;比如可以使用

while((ch = filereader.read())!=-1 ) 循环来读取文件;可以使用 BufferedReader 的 readLine() 方法一

行一行的读取文本。

l          当我们读写文本文件的时候,采用 Reader 是非常方便的,比如 FileReader ,

InputStreamReader 和 BufferedReader 。其中最重要的类是 InputStreamReader ,它是字节转换为字符的桥

梁。 你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如 GBK 等

l          FileReader 与 InputStreamReader 涉及编码转换 ( 指定编码方式或者采用 os 默认编码 ) ,可

能在不同的平台上出现乱码现象!而 FileInputStream 以二进制方式处理,不会出现乱码现象 .

3 )自己的领会:

l          如果处理纯文本文件,建议使用 FileReader ,因为更方便,也更适合阅读;但是要注意编码问题


l    其他情况(处理非纯文本文件),FileInputStream是唯一的选择;FileInputStream是进Socket通讯时会

用到很多,如将文件流是Stream的方式传向服务器!
  
3.        FileReader 类

1)     FileReader 类介绍:

InputStreamReader 类的子类,所有方法( read ()等)都从父类 InputStreamReader 中继承而来;

2)     与 InputStreamReader 类的区别:

l          自己的领会:

该类与它的父类 InputStreamReader 的主要不同在于构造函数,主要区别也就在于构造函数!从

InputStreamReader 的构造函数中看到,参数为 InputStream 和编码方式,可以看出,当要指定编码方式时,

必须使用 InputStreamReader 类;而 FileReader 构造函数的参数与 FileInputStream 同,为 File 对象或

表示 path 的 String ,可以看出,当要根据 File 对象或者 String 读取一个文件时,用 FileReader ;我

想 FileReader 子类的作用也就在于这个小分工吧。

3)     一般用法:

FileReader fr = new FileReader("ming.txt");
char[] buffer = new char[1024];
int ch = 0;
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch);
}

4.        InputStreamReader 类

l          以文本格式输入 / 输出,可以指定编码格式;

l          主要方法:

getEncoding (),read();

l          一般用法:

InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt"));
while((ch = isr.read())!=-1)
{
System.out.print((char)ch);
}

5.        BufferedReader 类

l          Jdk5 api :

Read text from a character-input stream, buffering characters so as to provide for the efficient

reading of characters, arrays, and lines.
l     BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,

读取分行文本很适合,BufferedReader是针对Reader的,不直接针对文件,也不是只针对文件读取。
l   一般用法:
    
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")));
String data = null;
while((data = br.readLine())!=null)
{
System.out.println(data);
}
    
  
6.        总结以上内容,得出比较好的规范用法:

1)     File file = new File ("hello.txt");

FileInputStream in=new FileInputStream(file);

2)     File file = new File ("hello.txt");

FileInputStream in=new FileInputStream(file);

InputStreamReader inReader=new InputStreamReader(in);

BufferedReader bufReader=new BufferedReader(inReader);

3)     File file = new File ("hello.txt");

FileReader fileReader=new FileReader(file);

BufferedReader bufReader=new BufferedReader(fileReader);

 

7.一些写法的区别:
1)
File file = new File ("hello.txt");
FileInputStream in=new FileInputStream(file);
InputStreamReader inReader=new InputStreamReader(in);
BufferedReader bufReader=new BufferedReader(inReader);

2)
FileInputStream in=null;
File file = new File ("hello.txt");
in=new FileInputStream(file);
BufferedReader bufReader=new BufferedReader(new InputStreamReader(in));

3)
File file = new File ("hello.txt");
BufferedReader bufReader=new BufferedReader(new InputStreamReader(new FileInputStream(file)));

上述两种写法的微小区别:
a)第二种方式中把“FileInputStream in=null;”定义单独放在开始处,说明下面应该还有要用到in对象变量的地方;(BufferedReader处用了)

b)第二种方式没有定义InputStreamReader的对象变量,直接在BufferedReader的构造函数中new一个,
这种方式与第一种方式的主要区别:InputStreamReader对象只使用一次!

这对于在这里只需要使用一次这个InputStreamReader对象的应用来说更好;无需定义InputStreamReader的对象变量,接收由 new返回的该对象的引用,因为下面的程序中不需要这个InputStreamReader的对象变量,所以无需定义;所以这种情况下,第二种方式比第一 种更好一些。

c)第三种方式中,典型的三层嵌套委派关系,清晰看出Reader的委派模式(《corejava》12章有图描述该委派关系),FileInputStream和InputStreamReader都没有定义变量,new生成的对象都只是使用一次。

d)三种方式的区别也就在于FileInputStream和InputStreamReader对象是否都只使用一次,是否需要定义它们的对象变量,以及个人的编码习惯。

e)但是要注意异常处理,FileInputStream(file)会抛出NotFileFoundException,如果采用surround方式
(try&catch)处理,应该用第二种方式,这样可以用System.out.println提示文件未找到;
当然在函数名后使用throws Exception,然后用第三种方式也行,但似乎这适合有用户界面的情况,把异常抛出在客户端在处理。

参考资料:

l          《 core java 》 12 章

l          使用 Java 操作文本文件的方法详解

http://java.ccidnet.com/art/3737/20041108/523627_1.html

l   FileReader 是什么类?和 FileInputStream 有什么不同???      

http://book.hackbase.com/ask2/ask107572.htm
自己的整理和领会:
引言:
    
C语言只需要一个File*就可以了,与C不同,java有一系列流类型,其数量超过60种。类库的设计者声称:“有

足够的理由为用户提供丰富的流类型的选择:这样做可以减少程序的错误。”例如,在C语言种,许多人认为“

将输出流写入一个只读模式的文件”是很常见的错误。(事实上,这并不常见。)

我们认为在C++语言中,流接口设计者避免程序出错的主要“工具”是小心谨慎的态度,在java语言中更是如

此。流库的高度复杂性迫使程序设计人员谨小慎微。
    
1.   File类
  
1 ) File 类介绍(《 core java 》 638 页)

File 类封装了对用户机器的文件系统进行操作的功能。例如,可以用 File 类获得文件上次修改的时间移动,

或者对文件进行删除、重命名。换句话说,流类关注的是文件内容,而 File 类关注的是文件在磁盘上的存储

File 类的主要方法有: getName(),getCanonicalFile(),lastModified(),isDerector(),isFile(),getPath()

等;

 

2 ) File 类与 FileInputStream 类的区别:

流类关注的是文件内容,而 File 类关注的是文件在磁盘上的存储。

 

File 不属于文件流 , 只能代表一个文件或是目录的路径名而已。

 

提示:(《 core java 》 639 页)

如果处理文件或者目录名,就应该使用 File 对象,而不是字符串。例如, File 类的 equals 方法知道一些

文件系统对大小写是敏感的,目录尾的“ / ”字符无关紧要。

 

自己的领会:

FileInputStream 类或者 FileReader 类的构造函数有多个,其中典型的两个分别为:一个使用 File 对象为

参数;而另一个使用表示路径的 String 对象作为参数;自己以前一直觉得直接用了 String 指定路径就可以

了,一直不明白为什么很多人都先构造一个 File 对象,现在终于明白了,“如果处理文件或者目录名,就应

该使用 File 对象,而不是字符串。”!

2.        FileInputStream 类

1 ) FileInputStream 类介绍:

以字节为单位(非 unicode )的流处理。字节序列即:二进制数据。与编码无关,不存在乱码问题。

FileInputStream 类的主要方法有:

Read (), read ( byte[] b ), read ( byte[],int off,int len ) ,available();

 

2 ) FileInputStream 类与 FileReader 类的区别:

两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别

呢?

l          Readers and Writers work only on line based character data, so plain text files.
For anything else, you MUST use Streams.

l          JDK5 API:

FileInputStream is meant for reading streams of raw bytes such as image data. For reading streams

of characters, consider using FileReader.

FileReader is meant for reading streams of characters. For reading streams of raw bytes, consider

using a FileInputStream .

l          FileInputStream :以字节流方式读取; FileReader :把文件转换为字符流读入;
l         InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。用Reader读取出

来的是char数组或者String ,使用InputStream读取出来的是byte数组。
l         Reader类及其子类提供的字符流的读取char(16位,unicode编码),inputStream及其子类提供字节

流的读取byte(8位),所以FileReader类是将文件按字符流的方式读取,FileInputStream则按字节流的方式

读取文件;InputStreamReader可以将读如stream转换成字符流方式,是reader和stream之间的桥梁
l   最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类。
  
l          FileInputStream 类以二进制输入 / 输出, I/O 速度快且效率搞,但是它的 read ()方法读到

的是一个字节(二进制数据),很不利于人们阅读。

l          而 FileReader 类弥补了这个缺陷,可以以文本格式输入 / 输出,非常方便;比如可以使用

while((ch = filereader.read())!=-1 ) 循环来读取文件;可以使用 BufferedReader 的 readLine() 方法一

行一行的读取文本。

l          当我们读写文本文件的时候,采用 Reader 是非常方便的,比如 FileReader ,

InputStreamReader 和 BufferedReader 。其中最重要的类是 InputStreamReader ,它是字节转换为字符的桥

梁。 你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如 GBK 等

l          FileReader 与 InputStreamReader 涉及编码转换 ( 指定编码方式或者采用 os 默认编码 ) ,可

能在不同的平台上出现乱码现象!而 FileInputStream 以二进制方式处理,不会出现乱码现象 .

3 )自己的领会:

l          如果处理纯文本文件,建议使用 FileReader ,因为更方便,也更适合阅读;但是要注意编码问题


l    其他情况(处理非纯文本文件),FileInputStream是唯一的选择;FileInputStream是进Socket通讯时会

用到很多,如将文件流是Stream的方式传向服务器!
  
3.        FileReader 类

1)     FileReader 类介绍:

InputStreamReader 类的子类,所有方法( read ()等)都从父类 InputStreamReader 中继承而来;

2)     与 InputStreamReader 类的区别:

l          自己的领会:

该类与它的父类 InputStreamReader 的主要不同在于构造函数,主要区别也就在于构造函数!从

InputStreamReader 的构造函数中看到,参数为 InputStream 和编码方式,可以看出,当要指定编码方式时,

必须使用 InputStreamReader 类;而 FileReader 构造函数的参数与 FileInputStream 同,为 File 对象或

表示 path 的 String ,可以看出,当要根据 File 对象或者 String 读取一个文件时,用 FileReader ;我

想 FileReader 子类的作用也就在于这个小分工吧。

3)     一般用法:

FileReader fr = new FileReader("ming.txt");
char[] buffer = new char[1024];
int ch = 0;
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch);
}

4.        InputStreamReader 类

l          以文本格式输入 / 输出,可以指定编码格式;

l          主要方法:

getEncoding (),read();

l          一般用法:

InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt"));
while((ch = isr.read())!=-1)
{
System.out.print((char)ch);
}

5.        BufferedReader 类

l          Jdk5 api :

Read text from a character-input stream, buffering characters so as to provide for the efficient

reading of characters, arrays, and lines.
l     BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,

读取分行文本很适合,BufferedReader是针对Reader的,不直接针对文件,也不是只针对文件读取。
l   一般用法:
    
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")));
String data = null;
while((data = br.readLine())!=null)
{
System.out.println(data);
}
    
  
6.        总结以上内容,得出比较好的规范用法:

1)     File file = new File ("hello.txt");

FileInputStream in=new FileInputStream(file);

2)     File file = new File ("hello.txt");

FileInputStream in=new FileInputStream(file);

InputStreamReader inReader=new InputStreamReader(in);

BufferedReader bufReader=new BufferedReader(inReader);

3)     File file = new File ("hello.txt");

FileReader fileReader=new FileReader(file);

BufferedReader bufReader=new BufferedReader(fileReader);

 

7.一些写法的区别:
1)
File file = new File ("hello.txt");
FileInputStream in=new FileInputStream(file);
InputStreamReader inReader=new InputStreamReader(in);
BufferedReader bufReader=new BufferedReader(inReader);

2)
FileInputStream in=null;
File file = new File ("hello.txt");
in=new FileInputStream(file);
BufferedReader bufReader=new BufferedReader(new InputStreamReader(in));

3)
File file = new File ("hello.txt");
BufferedReader bufReader=new BufferedReader(new InputStreamReader(new FileInputStream(file)));

上述两种写法的微小区别:
a)第二种方式中把“FileInputStream in=null;”定义单独放在开始处,说明下面应该还有要用到in对象变量的地方;(BufferedReader处用了)

b)第二种方式没有定义InputStreamReader的对象变量,直接在BufferedReader的构造函数中new一个,
这种方式与第一种方式的主要区别:InputStreamReader对象只使用一次!

这对于在这里只需要使用一次这个InputStreamReader对象的应用来说更好;无需定义InputStreamReader的对象变量,接收由 new返回的该对象的引用,因为下面的程序中不需要这个InputStreamReader的对象变量,所以无需定义;所以这种情况下,第二种方式比第一 种更好一些。

c)第三种方式中,典型的三层嵌套委派关系,清晰看出Reader的委派模式(《corejava》12章有图描述该委派关系),FileInputStream和InputStreamReader都没有定义变量,new生成的对象都只是使用一次。

d)三种方式的区别也就在于FileInputStream和InputStreamReader对象是否都只使用一次,是否需要定义它们的对象变量,以及个人的编码习惯。

e)但是要注意异常处理,FileInputStream(file)会抛出NotFileFoundException,如果采用surround方式
(try&catch)处理,应该用第二种方式,这样可以用System.out.println提示文件未找到;
当然在函数名后使用throws Exception,然后用第三种方式也行,但似乎这适合有用户界面的情况,把异常抛出在客户端在处理。

Ubuntu 20.04 + CARLA 0.9.13 长时运行崩溃?手把手教你定位和缓解Segmentation fault 本文详细解析了Ubuntu 20.04环境下CARLA 0.9.13仿真平台长时运行崩溃问题,提供了从内存监控到核心转储分析的系统级诊断方法,并分享内存泄漏缓解、稳定性优化配置等实用解决方案,帮助开发者构建更稳定的自动驾驶仿真环境。 阅读详情

相关推荐

Simulink开发项1000例实战专栏--实例52:基于Simulink开发一个超导磁储能控制系统,实现对SMES系统的精确控制和优化

需求分析超导磁储能系统(Superconducting Magnetic Energy Storage, SMES)是一种利用超导线圈储存和释放电能的高效储能技术。SMES系统具有响应速度快、能量密度高、循环寿命长等优点,广泛应用于电力系统的调峰填谷、频率调节、电压稳定以及紧急备用电源等领域。本项目将基于Simulink平台,开发一个完整的超导磁储能控制系统,实现对SMES系统的精确控制和优化。我们将详细讲解如何设计和实现该系统,并结合实际应用案例进行说明。

xiaoheshang_123的博客 200

JAVA基础篇—文件与流

处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等. 2.InputStreamReader OutputStreamWriter 处理字符流的抽象类 InputStreamReader 是...

weixin_30871905的博客 369

华为od 面试八股文_Python_05_含答案

华为od 面试八股文_Python_05_含答案

MISAYAONE的博客 2386

Java 笔记(01)之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别

ava.io下面有两个抽象类:InputStream和Reader InputStream是表示字节输入流的所有类的超类 Reader是用于读取字符流的抽象类 InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。 即用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。 弄清了两个超类的根本区别

OMG_C的博客 2470

File,FileInputStream,FileReader,InputStreamReader,BufferReader 的区别使用

File 类介绍File 类封装了对用户机器的文件系统进行操作的功能。例如,可以用 File 类获得文件上次修改的时间,移动,或者对文件进行删除、重命名。换句话说,流类关注的是文件内容,而 File 类关注的是文件在磁盘上的存储。主要方法有lastModified(),getName(),getCanonicalFileified(),isDerector(),isFile(...

weixin_34270606的博客 259

几种常见数据输入流InpuStreamFileInputStream、BufferedInputStreamInputStreamReaderFileReaderBufferedreader

InputStream/OutputStream,是所有字节输入/输出流的抽象基类。 1.1 InputStream也是标准输入流,通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源。 PrintStream是标准输出流: PrintStream ps = System.out; ps.print("...");//即System.out.print() ps.println("...

timon777的博客 1895

inputStreamReader(new FileInputStream(file),"UTF-8")出现乱码的问题

InputStreamReader reader = new InputStreamReader(new FileInputStream(file), "UTF-8");                 BufferedReader br = new BufferedReader(reader);                 String line = br.readLine();

zpryan的专栏 1万+

FILE,FILEINPUTSTREAM,FILEREADER,INPUTSTREAMREADER,BUFFEREDREADER的使用和区别

转载:http://www.blogjava.net/flysky19/articles/92286.html 参考资料:  《 core java 》 12 章  使用 Java 操作文本文件的方法详解 http://java.ccidnet.com/art/3737/20041108/523627_1.html l  FileReader 是什么类?和 FileInp

liuling_8008的专栏 731

JavaFileReader FileInputStream InputStreamReader BufferedReader 作用与区别

一直搞不清楚FileReader FileInputStream InputStreamReader BufferedReader 之间的区别联系,每次写读取文档的java程序都是网上百度。今天专门就这个问题进行了深入探讨。一、来源java.io下有两个抽象类InputStream和Reader,上述类都是继承了这两个超类。它们之间区别是:InputStrea...

weixin_33748818的博客 202

FileInputStreamFileReader的区别

转载自http://blog.csdn.net/zndxlxm/article/details/7405088 简述FileInputStreamFileReader的区别 核心提示:1 ) File 类介绍 File 类封装了对用户机器的文件系统进行操作的功能。例如,可以用 File 类获得文件上次修改的时间,移动,或者对文件进行删除、重命名。换句话说,流类关注的是文件

皮虫的专栏 566

Java入门到精通-24 IO流——字节流与字符流

本文介绍了Java IO流的核心概念,包括字节流与字符流的使用。主要内容包括: IO流概述:分类、体系结构及输入/输出流的基本概念 File类操作:文件/目录的创建、删除、遍历及递归遍历实现 字节流使用:重点讲解InputStream/OutputStream及其实现类的读写操作 字符流使用:介绍Reader/Writer及其实现类的文本处理方式 文章通过代码示例演示了文件操作、目录遍历以及不同IO流的使用场景,适合作为Java中高级特性的学习参考资料。

weixin_56693899的博客 250

java读文件,写文件的通用方法

在读文件和写文件的时候用到比较多的为:FileFileInputStreamFileReaderInputStreamReaderBufferedReader在此先介绍上面几个常用的类:1.File类:很明显,给一个地址,就可以构造一个file对象 File file = new File("d:/test/opt1.txt");2.FileInp...

weixin_34195546的博客 111

FileReader读取文件乱码问题

//FileReader reader = new FileReader(file); //注意乱码问题 InputStreamReader isr = null; try { isr = new InputStreamReader(new FileInputStream(...

aishuxi9261的博客 918

File

File的常用方法 二、理解Java的流和流的分类 FileInputStream是InputStream的子类 FileReader与BufferReader 字符流 基类:Reader FileReader 构造: FileReader(File file); FileReader(String name); 常用方法: i...

weixin_30834783的博客 66

java IO(以防删除故转载)

流: 可以理解数据的流动,就是一个数据流。IO流最终要以对象来体现,对象都存在IO包中。 流也进行分类: 1:输入流(读)和输出流(写)。 2:因为处理的数据不同,分为字节流和字符流。 字节流: 处理字节数据的流对象。设备上的数据无论是图片或者dvd,文字,它们都以二进制存储的。二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节。意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据。 字符流: 因为字符每个国家都不一样,所以涉及到了字符编码问题,那么GBK编码

liumeixiang777的博客 145

java下输出中文的一点研究

网上或者大部分书上都说Java中输出中文使用FileReader类就可以了,但是当你读取一个中文文档时,你会发现,除了乱码,还是乱码。究其原因,这其实是文件流读取时使用的编码方式和文件本身编码方式不同,造成读取出来文件乱码。还有一个细节,当你使用read()直接读取字符输出时,无论如何都是读不出中文的。关于这类问题,给出两种解决方案: 一、使用BufferedReader类包装一下FileRea...

weixin_30652491的博客 450

Java开源在线考试系统怎么选?从技术选型到落地部署的完整指南

Java开源在线考试系统怎么选?本文从技术选型、核心功能、部署运维、二次开发等维度,梳理了Java开源在线考试系统的选型要点。

麦塔在线考试培训系统 349

大数据 之 Snappy

【代码】大数据 之 Snappy。

zhixingheyi_tian的博客 174

Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动

dm‑r2dbc 是面向达梦 DM8 的实验性 R2DBC 驱动,混合架构:Netty 异步网络传输层 + JDBC 驱动协议编解码复用。核心思路:不去逆向达梦私有协议二进制报文,直接复用达梦 JDBC 驱动内部已经成熟的编解码逻辑,通过反射替换 JDBC 内部默认阻塞 Socket 传输实现,替换为 Netty NIO 异步通道,实现真正异步非阻塞网络 IO。

jinyuttt的专栏 290

41面向对象(高级)-抽象类

当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类。

weixin_52770734的博客 374

Spring AI RAG管道构建与优化

<think>我们只需要根据给定的内容生成摘要(≤150字)。给定内容较长,但核心是Spring AI RAG管道构建与优化,涉及文档加载、分割、嵌入、存储、检索、生成等。摘要应高度概括。 注意用户要求“根据以下内容,生成≤150字的文章摘要”。内容提供了代码等细节,但摘要需抓住要点。 写出摘要,字数≤150。</think>摘要:本文深入讲解Spring AI RAG管道的构建与优化,涵盖文档加载、分割、嵌入、存储、检索到生成的全流程。详细展示了多源文档加载(PDF、网页、JSON)、多种分割策略(按页、

BADAO_LIUMANG_QIZHI的博客 203

商超智能运营如何落地?从系统架构到实战避坑的完整技术路径

3. **多端交互展示层**:需覆盖顾客使用的**小程序、APP及H5公众号**,以及员工使用的管理后台。答:在应用层引入**适配器模式**。在项目启动时,应强制要求供应商或自研团队产出**部署文档**(含环境变量清单)和**二次开发文档**(含核心流程时序图),确保后续维护不受限于个人。- **多租户插件**:MyBatis Plus的`TenantLineInnerInterceptor`可实现SQL层面的自动拼接`store_id`条件,防止开发者因SQL编写疏漏导致的数据越权。

weixin_56812938的博客 503

车道分割YOLOV8-SEG

车道分割YOLOV8-SEG,训练得到PT模型,然后转换成ONNX,OPENCV的DNN调用,支持C++,PYTHON,ANDROID开发

day17-B站播放量完播率破解代码

day17-B站播放量完播率破解代码

上一篇: 转载:重新签名,修改系统时间,android.uid.system
下一篇: media player 狀態與方法
jason_wks
博客等级 码龄15年 25粉丝 38原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值