字符流
字符流
字符流 = 字节流 + 编码表
字符输入流
java.io.Reader是字符输入流的超类(父类),它定义了字符输入流的一些共性方法:
- 1、
close():关闭此流并释放与此流相关的系统资源。 - 2、
read():从输入流读取一个字符。 - 3、
read(char[] cbuf):从输入流中读取一些字符,并将它们存储到字符数组cbuf中
FileReader 是 Reader 的子类,用于从文件中读取字符数据。它的主要特点如下:
字符流 = 字节流 + 编码表
java.io.Reader是字符输入流的超类(父类),它定义了字符输入流的一些共性方法:
close():关闭此流并释放与此流相关的系统资源。read():从输入流读取一个字符。read(char[] cbuf):从输入流中读取一些字符,并将它们存储到字符数组 cbuf中FileReader 是 Reader 的子类,用于从文件中读取字符数据。它的主要特点如下:
最近近期公司需要使用dify框架开发一个公司网站的AI客服助手,但是嵌入网站时会显示powered by dify。有dify的logo。
dify版本:1.9.1 docker部署
java.io.File 类是专门对文件进行操作的类,注意只能对文件本身进行操作,不能对文件内容进行操作,想要操作内容,必须借助输入输出流。
File 类是文件和文件夹的抽象表示,主要用于文件和文件夹的创建、查找和删除等操作。
Iterator 是个接口,JDK 1.2 的时候就有了,用来改进 Enumeration 接口:
java public interface Iterator<E> { // 判断集合中是否存在下一个对象 boolean hasNext(); // 返回集合中的下一个对象,并将访问指针移动一位 E next(); // 删除集合中调用next()方法返回的对象 default void remove() { throw new UnsupportedOperationException("remove"); } }
JDK 1.8 时,Iterable 接口中新增了 forEach 方法。该方法接受一个 Consumer 对象作为参数,用于对集合中的每个元素执行指定的操作。该方法的实现方式是使用 for-each 循环遍历集合中的元素,对于每个元素,调用 Consumer 对象的 accept 方法执行指定的操作。default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}该方法实现时首先会对 action 参数进行非空检查,如果为 null 则抛出 NullPointerException 异常。然后使用 for-each 循环遍历集合中的元素,并对每个元素调用 action.accept(t) 方法执行指定的操作。由于 Iterable 接口是 Java 集合框架中所有集合类型的基本接口,因此该方法可以被所有实现了 Iterable 接口的集合类型使用。 它对 Iterable 的每个元素执行给定操作,具体指定的操作需要自己写Consumer接口通过accept方法回调出来。

IO,即in和out,也就是输入和输出,指应用程序和外部设备之间的数据传递,常见的外部设备包括文件、管道、网络连接。
Java 中是通过流处理IO 的,那么什么是流?

print()