【Java高级特性】java学习之旅33-IO流

V-rep机器人仿真(Win10):UR5+RG2+Kinect+YOLOV3+DDPG+Pytorch(第四部分:YOLOV3图像识别) 这是一个V-rep机器人仿真实验,较为简单,适合初学者在入门图像识别、机器学习、机器人学的内容时进行学习与训练。 实验涉及的内容有:V-rep机器人仿真,YOLOV3图像识别,强化学习DDPG,UR5机械臂及RG2机械手,Kinect摄像头。 使用环境:Win10,Pytorch0.4,V-rep 整个实验一共由多篇文章组成,本文是第四部分。 第四部分:YOLOV3图像识别 文章目录第四部分:YO... 阅读详情

File类

文件类:表示目录和文件的类

是Java中io流的基础类

常用的方法:

  1. 有参构造方法:File(String pathname)//pathname可以填写绝对路径或者相对路径
File file = new File("E:\\test\\hello.txt");
  1. 判断是否是文件 isFile()
System.out.println(file.isFile());//true
  1. 判断是否是目录 isDirectory()
System.out.println(file.isDirectory());//false
  1. 判断文件或者目录是否存在 exist()
System.out.println(file.exists());//true
  1. 使用file对象创建一个文件 createNewFile()
//创建新的文件时,所包含的目录必须已经创建,否则会报错
try{
    file.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}
  1. 创建目录 mkdir()
//创建目录时,传入的参数只到目录
file.mkdir();//创建目录
file.mkdirs();//创建多重目录
  1. 获取文件的字节大小 length()
System.out.println(file.length());
  1. 重命名文件并保存内容 renameTo()
file.renameTo(new File("E:\\test\\hi.txt"));
  1. 获取文件名 getName()
Systen.out.println(file.getName());
  1. 获取相对路径 getPath()
System.out.println(file.getPath());
  1. 获取绝对路径 getAbsolutePath()
System.out.println(file.getAbsulutePath());
  1. 删除
file.delete();

//当系统回收的时候删除该文件
file.deleteOnExit();

绝对路径和相对路径

绝对路径: 文件在系统硬盘中的真实全路径

相对路径: 相对项目路径,子路径

  1. ./ 从当前目录开始,可以省略不写
  2. …/ 上一级目录
  3. / 根目录

IO流概念

输入输出流:可以实现将系统中的文件读入到java程序中,将java程序中的数据写出到系统文件。

输入input, 输出output

IO流分类:

1. 字节流

抽象类:InputStream  实现类:FileInputStream 、BufferedInputStream
抽象类:OutputStream 实现类:FileInputStream、BufferedOutputStream

2. 字符流

抽象类:Reader 实现类:FileReader、BufferedReader
抽象类:Writer 实现类:FileWriter、BufferedWriter

3. 对象流(继承字节流)

ObjectInputStream
ObjectOutputStream

4. 二进制流(继承字节流)

DataInputStream
DateOutputStream

5. 转换流

InputStreamReader
OutputStreamWriter

字节流和字符流的选择:

  1. 字符编写的文件可以使用字节流和字符流,推荐使用字符流,效率较高并且保证不乱码
  2. 字节编写的文件可以使用字节流
  3. 使用记事本打开文件,不乱码的是字符文件。

IO流的使用

FileInputStream 字节输入流

常用方法:

  1. 构造方法:
//根据File对象创建输入流
File file = new File("test.txt");
// 创建输入流对象父类引用指向子类
InputStream is = new FileInputStream(file);

//根据文件路径创建输入流
InputStream is = new FileInputStream("test.txt");
  1. 按字节读取 read() 没读到内容返回-1,正常的返回值是字节数
/**
* 按字节读取
*       1.每次读取一个字节
*       2. 中文读取乱码
*/ 
InputStream is = new FileInputStream("test.txt");
int result = 0;
while((result = is.read()) != -1) {
    System.out.print((char)result);
}

is.close();
  1. 读取到指定的byte数组中 read(byte[] data)
/**
* 按字节读取文件
*       1. 将字节内容读取到指定数组
*       2. 一定程度解决了中文乱码,提高了读取速度
*/
InputStream is = new FileInputStream("test.txt");

byte[] data = new byte[512];

int length = 0;
while((length = is.read(data)) != -1) {
//使用读取到的内容创建字符串对象,不包含数组中空内容,
//String的构造方法里面可以放入byte型数组
    System.out.println(new String(data, 0, length)
}

is.close();
  1. 获取可读内容的大小:available()
/**
* 一次性读完整个内容
*/
InputStream is = new FileInputStream("test.txt");

byte[] data = new byte[is.available()];

is.read(data);

System.out.println(new String(data));

is.close();
  1. 关闭资源 close()

FileOutputStream 字符输出流

常用方法:

  1. 构造方法(与输入流相似)
  2. 按字节输出:write(int b)
/**
* 输出一个字节
*       1. 出现中文乱码
*/
OutputStream os = new FileOutputStream("test.txt");

String str = "hello world 你好 世界";

for(char c : str.toCharArray()) {
    os.write(c);
}
os.close();
  1. 按字节数组输出: write(byte[] data)
OutputStream os = new FileOutputStream("test.txt");

String str = "hello world 你好 世界";
//字符串获得byte型数组
os.write(str.getBytes());

os.close();
  1. 关闭资源

字节对拷流

  1. 拷贝文本
public static void main(String[] args) throws IOException{

FileInputStream fis = new FileInputStream("test.txt");

FileOutputStream fos = new FileOutputStream("test_copy.txt");

byte[] data = new byte[512];
int length = 0;

//read返回字节数量,截取从0到指定长度的字节数组
while((length = fis.read(data)) != -1){
    fos.write(data,0,length);
}

fos.close();
fis.close();
}
  1. 拷贝图片
public static void main(String[] args){
    
    InputStream is = new FileInputStream("img\\img1.jpeg");
    OutputStream os = new FileOutputStream("img\\img1_copy.jpeg");
    
    byte[] data = new byte[512];
    
    int length = 0;
    while((length = is.read(data))!= -1){
        os.write(data, 0, length);
    }
    
    os.close();
    id.close();
    
}
BufferedInputStream: 字节缓冲输入流
BufferedOutputStream: 字节缓冲输出流

字节缓冲流、包装流、管道流。实现了字节流的再包装、底层实现了缓冲技术提高了效率。

常用方法:

  1. 构造方法:
FileInputStream fis = FileInputStream("test.txt");
FileOutputStream fos = new FileOutputStream("test_copy.txt");
//管道输入流中放入输入流对象
BufferedInputStream bis = new BufferedInputStream(fis);
//管道输出流中放入输出流对象
BufferedOutputStream bos = new BufferedOutputStream(fos);
  1. 读写方法 read(byte[] data), write(byte[] data, int set, int off)
//以上构造方法
byte[] data = new byte[512];
int length = 0;
while((length = bis.read(data)) != -1) {
    bos.write(data, 0, length);
}
bos.close();
bis.close();
fos.close();
fis.close();
  1. 清空缓冲区:flush()
bos.flush();

注意:

  1. 如果输出流不关闭,可能导致最后没有填满缓冲区的数据丢失
  2. 缓冲流输出,会将数据保存到缓冲区,缓冲区存放满才会将内容输出到文件
  3. 也可以使用flush()方法将缓冲区内同强制输出
FileReader 字符输入流

常用方法:

  1. 构造方法:
//利用File对象创建
Reader reader = new FileReader(new File("test.txt"));
//字符串对象创建对象
Reader reader = new FileReader("test.txt");
  1. 按字符读取 read()
Reader reader = new FileReader(new File("test.txt"));

int result = reader.read();

System.out.println((char)result);

reader.close();
  1. 按照字符数组读取:read(char[] data)
Reader reader = new FileReader(new File("test.txt"));
char[] data = new char[512];

int length = reader.read(data);
System.out.println(length);

System.out.println(new String(data, 0, length));

reader.close();
FileWriter 字符输出流

常用方法:

  1. 构造方法
FileWriter(File file)
FileWriter(String pathname)
  1. 写一个字符
write()
  1. 写一个字符数组
write(char[] data)
  1. 写一个字符串
//String类的底层实现是char[] 数组所以可以放字符串
write(String data)
  1. 关闭资源
close()
  1. 清空缓存区中的内容
flush()

例:

String str = "Hello World 你好 世界";

Writer writer = new FileWriter("test.txt");

writer.write(str.toCharArray());

writer.close();
//writer.flush();

注意事项

  1. FileWriter从OutputStreamWriter继承了缓存系列方法
  2. 可以使用flush()方法清空缓存区的内容
  3. 如果不关闭字符输出流,可能导致最终缓存区内容丢失
字符对拷流
FileReader fr = new FileReader("test.txt");

FileWriter fw = new FileWriter("test_copy.txt");

char[] data = new char[512];
int length = 0;

while((length = fr.read(data)) != -1) {
    fw.write(data, 0, length);
}

fw.close();
fr.close();
BufferReader: 字符输入缓冲流
BufferWriter: 字符输出缓冲流

字符缓冲流,底层实现了缓冲技术,提高了效率

常用方法:

  1. 构造方法:
FileReader fr = new FileReader("test.txt");
FileWriter fw = new FileWriter("test_copy.txt");

BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
  1. 读取方法:read(), read(char[] data), write(), write(char[] data)
char[] data = new char[512];

int length = 0;
while((length = br.read(data))!= -1){
    bw.write(data, 0, length);
}
  1. 读一整行 readLine(),输出换行:newLine()
String data = null;
while((data = br.readLine()) != null){
    bw.write(data);
    bw.newLine();
}
  1. 清空缓冲区:flush(),关闭资源 close()
bw.close();
br.close();

注意:
字符缓冲流可以实现整行的读取

InputStreamReader、OutputStreamWriter 转换流

解决字符乱码的问题

注意:

  1. 只能转换成缓冲字符流
  2. 源文件字符编码决定输入流的字符编码
  3. 目标文件字符编码决定输出流的字符编码
/**
* 将gbk文件拷贝成utf8文件
* 如果直接使用字符流拷贝,会出现乱码,因为源文件和目标文件的字符编码不一致。
*/
FileReader fr = new FileReader("doc_gbk.txt");
FileWriter fw = new FileWriter("doc_utf8.txt");

BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);

String line = null;
while((line = br.readLine()) != null) {
    System.out.println(line);
    bw.write(line);
    bw.newLine();
}

bw.close();
br.close();
fw.close();
fr.close();

转换编码方式

//1. 创建字节流
FileInputStream fis = new FileInputStream("doc_gbk.txt");
//2.使用字节流创建转换流,此时指定字符编码
InputStreamReader isr = new InputStreamReader(fis, "gbk");
//3.使用转换流创建缓冲字符流
BufferedReader br = new BufferedReader(isr);

//简写输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("doc_utf8"),"utf-8"));

String line = null;
while((line = br.readLine()) != null){
    System.out.println(line);
    bw.write(line);
    bw.newLine();
}

bw.close();
br.close();
isr.close();
fis.close();
apache commons-io.jar

apache.org 下

常用的工具类:

IOUtils

  1. 简化对拷流
FileReader fr = new FileReader("test.txt");
FileWriter fw = new FileWriter("test_copy.txt");

IOUtils.copy(fr, fw);
fw.close();
fr.close();

  1. 复制文件:
FileUtils.copyFile(new File("test.txt"), new File("test_copy.txt"));
  1. 将文件的内容读成字符串:
String content = FileUtils.readFileToString(new File("test.txt"),"utf-8");
  1. 将字符串的内容输入到文件
//最后一个参数true就是允许文件内容不断叠加,不删除
FileUtils.writeStringToFile(new File("test.txt"), "hello world", "utf-8" , true);
  1. 将网络上URL的地址复制文件
FileUtils.copyURLtoFile(new URL("https://timgsa.baidu.com/timg"), new File("xm.jpg"));

训练:

  1. 将99乘法表输出到文件99table.txt
    FileOutputStream fos = new FileOutputStream("99table.txt");
    
    for(int i = 1; i <= 9; i++){
        for(int j = 1; j <= i; j++){
            fos.write((j + "*" + i + "=" + (j * i) + "\t" ).getByetes());
        }
        for.write("\r\n".getBytes());
    }
    
    fos.close();
  1. 输入任意目录,分别统计这个文件目录下文件和文件夹的个数
    @Test
    public void test1(){
        String path = "E:\\train\\jgs1904\\测试文件夹"
        getCount(path);
        System.out.println(fileCount);
        System.out.println(folderCount);
    }
    
    //定义两个全局的变量,用来递归记录值
    private static int fileCount = 0;
    private statiac int folderCount = 0;
    
    //递归用来记录值
    public static void getCount(String path){
        
        File file = new File(path);
        
        //获取当前目录下的所有文件和目录
        String[] list = file.list();
        
        for(String str : list){
            File itemFile = new File(path + "\\" + str);
            if (itemFile.isDirectory()){
                folderCount++;
                getCount(path + "\\" + str);
            } else {
                fileCount++;
            }
        }
    }
  1. 统计一个java文件有多少行代码
    String filePath = "./src/org/jgs1904/work/Work01.java";
    
    BufferedReader br = new BufferedReader(new FileReader(filePath));
    
    String line = null;
    int lineCount = 0;
    
    while((line = br.readLine()) != null){
        if(line.trim().equals("") || line.trim().startsWith("/*") || line.trim().startsWith("//") || line.trim().startsWith("*")){
            continue;
        }
        lineCount++;
    }
    br.close();
    
    System.out.println(lineCount);
  1. 判断一个字符文件中指定字符出现的次数,以及出现的具体位置(第几行第几个字符开始)
    String filePath = "Work02.txt";
    String str = "阿文";
    
    BufferedReader br = new BufferedReader(new FileReader(filePath));
    
    String line = null;
    int lineCount = 0;
    int count = 0;
    while((line = br.readLine()) != null){
        lineCount++;
        int index = -str.length();//以后循环是会加上字符串的长度,所以第一次循环是提前减去字符串的长度
        while((index = line.indexOf(str, index + str.length())) > -1){
            System.out.println(lineCount + "::" + index);
        }
    }
    
    br.close();
    
    System.out.println(count);
  1. 读取一个字符文件,将字符文件中的敏感词汇替换为*号,并重新输出成新的字符文件。敏感词汇列表在keywords.txt中编写,多个词汇使用逗号分隔。
    //读取敏感词的文件
    BufferedReader br = new BufferedReader(new FileReader("keywords.txt"));
    //敏感词中的内容默认不换行
    String keywordsStr = br.readLine();
    //以逗号分隔每个敏感词返回一个敏感词的String数组
    String[] keywords = keywordsStr.split(",");
    br.close();
    br = new BufferedReader(new FileReader("work03.txt"));
    
    BufferedWriter bw = new BufferedWriter(new FileWriter("work03_copy.txt"));
    
    String line = null;
    while((line = br.readLine()) != null){
        for (String keyword : keywords){
            char[] charArray = new char[keyword.length()];
            Arrays.fill(charArray, '*');
            line = line.replace(keyword, new String(charArray));
        }
        System.out.println(line);
        br.white(line);
        bw.newLine();
        
    }
    
    bw.close();
    br.close();
基于OpenClaw的自动化文件管理与文档分类系统设计与实现 本文介绍了一种基于OpenClaw的自动化文件管理与文档分类系统。系统采用三层架构设计,包含数据层、逻辑层和应用层,核心组件涵盖文件扫描、处理、分类、移动等功能。技术选型上使用Python/FastAPI作为后端,结合PostgreSQL/Elasticsearch/MinIO存储方案,并整合scikit-learn/PyTorch等AI技术实现智能分类。系统实现了文件递归扫描、增量扫描、元数据提取等功能,通过文件哈希和修改时间检测变化。该方案能有效提升文件管理效率,实现文档的自动化分类与智能管理。 阅读详情

相关推荐

CircuitBreaker Resilience4J 介绍

在分布式环境中,我们的应用可能会面临着各种各样的可恢复的异常(比如超时,网络环境异常),此时我们可以利用不断重试的方式来从异常中恢复(Retry Pattern),使整个集群正常运行。然而,也有一些异常比较顽固,突然发生,无法预测,而且很难恢复,并且还会导致级联失败(举个例子,假设一个服务集群的负载非常高,如果这时候集群的一部分挂掉了,还占了很大一部分资源,整个集群都有可能遭殃)。如果我们这时还是不断进行重试的话,结果大多都是失败的。

zzhongcy的专栏 3539

JAVA笔记 | IO流的一些简单使用

IO流用于网络(设备间)传输图片,视频等,分字符流,字节流 字节流: 传输二进制字节,通常用于传输图片,视频,文件 通常以InputStream/OutputStream结尾:FileInputStream/BufferedInputStream/FileOutputStream/BufferedOutputStream等 字符流: 一个字符约占n个字节(不同编码情况下不同),用于读取文本文字 通常以Reader/Writer结尾: InputStreamReader/OutputStr.

qq_37630282的博客 1722

从数学到机床:RTCP背后的几何变换与工业实现

本文深入解析RTCP(Rotary Tool Center Point)技术在五轴数控加工中的核心作用,通过几何变换与运动学原理实现刀尖点跟随,确保加工精度。从数学基础到工业实现,详细探讨了算法架构、机床结构适配及精度保障方法,为数控系统开发和高效加工提供关键技术支撑。

jump7的博客 258

Java#IO流(Input,Output)

1、什么是IO流? IO流是程序对文件进行的输入输出的操作,Input,Output。 1.1什么是输入呢(Input)? 就好比我把一头猪关进笼子里,让它在笼子里进行吃饭,吃饭的这个过程就是处理过程,那我把猪放进笼子里的动作,这个过程就叫做输入操作Input。在计算机里,输入就是把文件内容读取其中的数据到另一个文件里。 1.2什么是输出呢(Output)? 我把猪从笼子里拿出来,放到地上,我把猪拿出来的动作,就是输出,这个过程就叫输出操作output。在计算机里,输出就是把文件里内容进行输出数据操作。

光就是羁绊之力,它会再度被某人继承,散发出耀眼的光。 852

SLG项目开发经验二_大地图设计与实现

本文深入探讨了SLG游戏大地图设计与实现的关键技术,包括网格化业务框架、AOI系统优化、边界处理方案以及行军系统实现。通过Unity引擎的实践案例,详细解析了大地图性能优化的核心策略,如分块加载、GPU Instancing和差异同步协议,为SLG项目开发提供宝贵经验。

weixin_29001419的博客 217

莫兰指数stata命令_一文读懂16个sp系列stata空间计量命令及应用

spcompress:Compress Stata-format shapefile压缩数据成stata格式的shapefile2、Looking at data/观测数据2、Looking at data/观测数据grmap:Graph choropleth maps绘制等值区域图spdistance:Calculator for distance between places计算区域之间距离3...

weixin_39719989的博客 821

最新Java基础系列课程--Day10-IO流文件处理

各位同学,前面我们已经学习了File类,通过File类的对象可以对文件进行操作,但是不能操作文件中的内容。要想操作文件中的内容,我们还得学习IO流。但是在正式学习IO流之前,我们还需要学习一个前置知识叫做字符集,只有我们把字符集搞明白了,再学习IO流才会更加丝滑。

BS009的博客 8143

Python爬虫实战:用Playwright+Transformer做财经新闻事件驱动分析,我靠它抓住了算力政策的涨停机会

对我来说,这套系统最大的价值不是抓住了几次涨停,而是把“看新闻→分析→决策”的全流程自动化、量化了——不用再被股吧的情绪带偏,不用再熬夜刷新闻,而是用数据和模型做理性判断。更重要的是,搭建这套系统的过程,我吃透了Playwright动态爬虫、Transformer文本分析、量化数据对接这些核心技能,这些技能不管是做量化、做数据分析师,还是做其他领域的爬虫,都能用得上。现在打开PyCharm,跟着代码跑一遍,你也能从海量财经新闻里,挖出属于自己的事件驱动信号——与其靠感觉炒股,不如靠数据说话。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1391

Java io流 详解

"IO流"(Input/Output stream)指的是Java中用于处理输入输出(I/O)数据的机制。在Java中,所有的输入和输出都被抽象为“流”对象,并通过输入流读取数据、输出流写入数据。Java的I/O包提供了丰富的类和方法来支持不同类型的流,输入流和输出流之间可以自由地进行转换。它们分别主要包括字节流和字符流两种类型。其中,字节流是操作二进制数据的流,可以处理任何类型的数据,常见的例如InputStream和OutputStream;

m0_68987535的博客 5369

EuROC 数据集格式及相关代码

Euroc提供ROS和zip两种数据格式。

~勿据散客~的博客 2093

Z-Image Turbo随机性增强插件的下载教程及使用方法 z-image生成图像太相似怎么办 Z-Image Turbo 整合包下载

Z-Image Turbo 是出了名的“seed 不敏感”,非常难做多样化图像创作。ComfyUi-ConditioningNoiseInjection 插件通过在conditioning(提示词编码)阶段加入可控噪声,成功解决了 Turbo 随机性不足的问题。它不仅能让 Turbo 产生更丰富的构图差异,还能保持主题稳定,是目前我测试过最有效的 Turbo 随机性增强工具。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1973

Java:IO流详解

Java:IO流详解

游手好闲 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IO流大总结

1.概念IO流用来处理设备之间的数据传输Java对数据的操作是通过流的方式Java用于操作流的类都在IO包中流按流向分为两种:输入流,输出流流按操作类型分为两种:字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的字符流 : 字符流只能操作纯字符数据,比较方便2.IO流常用父类字节流的抽象父类:InputStreamOutputStream字符流的抽象父类:Reader...

li123128的博客 477

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

揭秘IO流绝技,内存、打印、压缩流一手掌控!

之前三篇文章分别讲解了 File 类,操作 IO 的套路,不能不懂的处理流。今天的文章是 Java IO 的大结局,我们来聊聊 IO 的其它几个有用的流,内存流,打印流、压缩流。1内存操作流前面讲解的输入和输出都是操作文件的,其实我们也可以将内容写到内存,以及从内存中读取数据。内存操作流也就是字节数组节点流,分为字节数组输...

weixin_42015101的博客 92

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Stream流和Optional

Stream流

qq_45888932的博客 2637

【Java300集学习笔记与心得】序言-写给自己~

背景:应网友推荐,先观看完了慕课网免费的JAVA三季入门视频,感觉跳度太大。(本人基础太差,慕课网JAVA课程可作为有一定良好JAVA基础的同学可以作为补充、记忆去学习)以下Java300集目录。写给自己:自己将尽自己最大努力,学好JAVA。认真做每一分笔记~感谢尚学堂.高淇.JAVA300集。侵删~ 1_300集java课程介绍 2_计算机语言发展史_java历史_java核心优势_java三大...

Oliver_LJF的博客 1536

函数式编程-Stream流简单讲解

Java8的Stream使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合或数组进行链状流式的操作。可以更方便的让我们对集合或数组操作。我们在编写代码的时候出现最多的就是空指针异常。所以在很多情况下我们需要做各种非空的判断。Optional就好像是包装类,可以把我们的具体数据封装Optional对象内部。然后我们去使用Optional中封装好的方法操作封装进去的数据就可以非常优雅的避免空指针异常。我们一般使用Optional的静态方法ofNullable来把数据封装成一个Optional对象。

m0_46103359的博客 391

IO(四)

前面已经把java io的主要操作讲完了 这一节我们来说说关于java io的其他内容   Serializable序列化 实例1:对象的序列化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

u012467492的专栏 356

java思维导图 - -13张思维导图带你快速入门 --

硬核推荐---- 13张思维导图带你快速入门 -- <怒肝一周,只求一赞>

qq_57013916的博客 1万+

Java学习笔记

目录 1.判断一个输入数字的类型 2.Java的数组是动态长度的 1.判断一个输入数字的类型 前两天参加的卓越班笔试考了一个很简单的问题:判断输入一个整数是否是3的倍数。当时因为有一段时间没看Java基础的内容,都忘了还有hasNextInt()这种函数来判断整数类型。在百度走了一圈,选择了一种try-catch的方法。 publicstaticvoidmain(String[] args) { inti= 0; Scanner in= newScanner(System....

weixin_40908748的博客 847

Java网络编程(一)流

一、前言 一直以来流都是困扰新手和才工作者的东东,这里也算给新来者一些简介。用最简单的语言,说明罪简单的道理。希望如此 二、流的简单 2.1 基础流输入流inputStream 拥有的方法:reed(读取)、available(可以读取最少长度)、...

weixin_33816946的博客 139

JAVA学习第二步,初级知识框架梳理

回顾往期的学习,才发现已经学习了这么多知识点。这里复制了其他创作者的一些梳理结合自己的梳理。总结了自己在Java学习入门阶段的知识点。笔记自己了也写了详细的两本 第一章 Java面向对象 1-1包的定义 1-2 编译运行定义在包中的类 1-3 如何使用其他包中的类 1-4 Eclipse的安装 ,idea的安装 ...

weixin_30594001的博客 86

java高级教程pdf_Java高级特性编程及实战 PDF 下载

相关截图:资料简介:本书针对已经掌握java语言基础的人群,深入学习Java高级实用技术,进一步强化Java开发技能,主要学习Java集合框架、泛型、Java实用类、输入输出处理、反射机制、注解、多线程、Socket网络编程、XML解析等知识。通过本书,读者将能够掌握Java常用的API技术,能够实现一些实际开发中的功能。资料目录:序言前言第1章 集合框架和泛型 1任务1 查询标题 21.1.1 ...

weixin_29811891的博客 1186

MLDN出品JAVA风暴终极的java学习视频

MLDN出品JAVA风暴终极的java学习视频 按顺序讲解,非常细致,很不错的视频 Java介绍及JDK配置.wmv Java标识符号、关键字、类型.wmv Java标识符号、关键字、类型(下)-v1.wmv Java运算符、表达式.wmv 分支、循环语句.wmv 分支、循环语句(下).wmv 数组与方法.wmv 数组与方法(下).wmv 面向对象基础_01.wmv 面向对象

永生天地 1291

IO细述

Java IO1:IO和File IO 大多数的应用程序都要与外部设备进行数据交换,最常见的外部设备包含磁盘和网络。IO就是指应用程序对这些设备的数据输入与输出,Java语言定义了许多类专门负责各种方式的输入、输出,这些类都被放在java.io包中。 File类 File类是IO包中唯一代表磁盘文件本身的对象,File类定义了一些与平台无关的方法来操作文件。通过调用File类提供的各...

weixin_34223655的博客 85

Java中高级岗面试为何越来越难,java高级特性面试题

作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!,可以扫码获取!!(备注:Java)**[外链图片转存中…(img-Xmb2EcRz-1713841016979)]作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料。

2301_82243139的博客 989
上一篇: 【Java进阶】java的浅拷贝和深拷贝含义
下一篇: 【Vue】Vue父页面与iframe内嵌html子页面互调,传参问题
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值