Java学习day13

这篇具有很好参考价值的文章主要介绍了Java学习day13。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

流(Stream)

流是一个非常强大的概念,它提供了一种高效且便捷的方式来处理集合数据。你可以将流看作是一系列数据项的管道,你可以对这些数据进行各种操作,如过滤、映射、排序和归约。

流的创建

在Java中,你可以通过集合、数组或输入/输出操作来创建流。下面是一些创建流的示例:

  • 通过集合创建流:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
Stream<String> stream = names.stream();
  • 通过数组创建流:
String[] names = {"Alice", "Bob", "Charlie"};
Stream<String> stream = Arrays.stream(names);
  • 通过输入/输出操作创建流:
try (Stream<String> stream = Files.lines(Paths.get("data.txt"))) {
    // 处理流中的数据
} catch (IOException e) {
    e.printStackTrace();
}

流的操作

流提供了丰富的操作方法,你可以使用它们来处理流中的数据。下面是一些常见的流操作:

  • 过滤操作:使用filter方法根据指定的条件过滤流中的元素。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
                                   .filter(n -> n % 2 == 0)
                                   .collect(Collectors.toList());
  • 映射操作:使用map方法将流中的元素映射为另一个元素。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<Integer> nameLengths = names.stream()
                                 .map(String::length)
                                 .collect(Collectors.toList());
  • 排序操作:使用sorted方法对流中的元素进行排序。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> sortedNames = names.stream()
                               .sorted()
                               .collect(Collectors.toList());
  • 归约操作:使用reduce方法将流中的元素归约为一个值。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
                 .reduce(0, (a, b) -> a + b);

流的分类

  1. 根据功能分类:

    • 节点流(Node Stream):

      • 描述:节点流直接与数据源或目标进行交互,提供最基本的读取和写入功能。
      • 包含的流类型:
        • 字节节点流(Byte Node Stream):用于处理字节数据的节点流。
          • 示例:InputStreamOutputStreamFileInputStreamFileOutputStream等。
        • 字符节点流(Character Node Stream):用于处理字符数据的节点流。
          • 示例:ReaderWriterFileReaderFileWriter等。
    • 缓冲流(Buffered Stream):

      • 描述:缓冲流是对节点流的包装,提供了缓冲功能,以提高I/O操作的效率。

      • 包含的流类型:

        • 缓冲字节流(Buffered Byte Stream):对字节节点流进行缓冲的流。

          • 示例:BufferedInputStreamBufferedOutputStream等。
        • 缓冲字符流(Buffered Character Stream):对字符节点流进行缓冲的流。

          • 示例:BufferedReaderBufferedWriter等。
    • 区别:节点流直接与数据源或目标进行交互,数据在读取或写入时不会进行缓冲,每次操作都涉及直接访问底层数据源或目标。缓冲流在读取或写入数据时,先将数据存储到内部的缓冲区,然后从缓冲区中读取或写入数据。这样可以减少对底层资源的直接访问次数,提高I/O操作的效率。

  2. 根据数据类型分类:

    • 字节流(Byte Stream):

      • 描述:字节流以字节为单位进行读取和写入操作,适用于处理二进制数据。

      • 包含的流类型:

        • 字节节点流(Byte Node Stream):直接与字节数据源或目标进行交互的节点流。
        • 缓冲字节流(Buffered Byte Stream):包装了字节节点流的缓冲流。
    • 字符流(Character Stream):

      • 描述:字符流以字符为单位进行读取和写入操作,适用于处理文本数据。
      • 包含的流类型:
        • 字符节点流(Character Node Stream):直接与字符数据源或目标进行交互的节点流。
        • 缓冲字符流(Buffered Character Stream):包装了字符节点流的缓冲流。
    • 区别:字节流处理的是二进制数据,适合于处理图像、音频、视频等非文本数据。字符流处理的是文本数据,提供了对字符编码的支持,适合于处理文本文件、配置文件等。

Java学习day13,java,学习

输入/输出(IO)

输入/输出(IO)是与外部环境进行数据交互的基本操作。在Java中,我们使用IO流来读取和写入数据。

IO流的分类

Java中的IO流分为字节流和字符流。字节流用于处理二进制数据,而字符流用于处理文本数据。

常见的字节流类有:InputStreamOutputStreamFileInputStreamFileOutputStream等。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ByteNodeStreamExample {
    public static void main(String[] args) {
        try {
            FileInputStream inputStream = new FileInputStream("input.txt");
            FileOutputStream outputStream = new FileOutputStream("output.txt");

            int data;
            while ((data = inputStream.read()) != -1) {
                outputStream.write(data);
            }

            inputStream.close();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

缓冲

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class BufferedByteStreamExample {
    public static void main(String[] args) {
        try {
            BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream("input.txt"));
            BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream("output.txt"));

            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }

            inputStream.close();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

常见的字符流类有:ReaderWriterFileReaderFileWriter等。

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CharacterNodeStreamExample {
    public static void main(String[] args) {
        try {
            FileReader reader = new FileReader("input.txt");
            FileWriter writer = new FileWriter("output.txt");

            int data;
            while ((data = reader.read()) != -1) {
                writer.write(data);
            }

            reader.close();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

缓冲

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedCharacterStreamExample {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
            BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));

            String line;
            while ((line = reader.readLine()) != null) {
                writer.write(line);
                writer.newLine();
            }

            reader.close();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

文件的读写操作

文件的读写是IO操作中最常见的任务之一。下面是一些文件读写的示例:

读取文件内容
try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}
写入文件内容
try (BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"))) {
    writer.write("Hello, World!");
} catch (IOException e) {
    e.printStackTrace();
}

文件(File)

在Java中,我们可以使用java.io.File类进行文件的常见操作,如创建文件、删除文件、重命名文件等。下面是一些文件处理的示例:

创建文件
File file = new File("data.txt");
try {
    if (file.createNewFile()) {
        System.out.println("文件创建成功!");
    } else {
        System.out.println("文件已存在!");
    }
} catch (IOException e) {
    e.printStackTrace();
}
删除文件
File file = new File("data.txt");
if (file.delete()) {
    System.out.println("文件删除成功!");
} else {
    System.out.println("文件删除失败!");
}
重命名文件
File file = new File("data.txt");
File newFile = new File("newdata.txt");
if (file.renameTo(newFile)) {
    System.out.println("文件重命名成功!");
} else {
    System.out.println("文件重命名失败!");
}
System.out.println("文件删除成功!");

} else {
System.out.println(“文件删除失败!”);
}文章来源地址https://www.toymoban.com/news/detail-826881.html


#### 重命名文件

```java
File file = new File("data.txt");
File newFile = new File("newdata.txt");
if (file.renameTo(newFile)) {
    System.out.println("文件重命名成功!");
} else {
    System.out.println("文件重命名失败!");
}

到了这里,关于Java学习day13的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA学习笔记- - - day 1

    目录 💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家一起进步成长💕 ​编辑 运算符(重要) 运算符四则运算 基本数据类型变量间的运算 赋值运算符 比较运算符 逻辑运算符(重要) 流程控制(重要) 1.if 2.if...else... 3.if...else if...else 4.switch 只能

    2024年02月01日
    浏览(32)
  • JAVA安全学习 Day 1

    JAVA ClassLoader机制 谈起JAVA就不得不谈起他的基本类的加载机制 谈一下我的粗略理解: 我一开始也不理解为什么学习java安全要从一个classloader讲起,似乎有点太基层了,但是学到后面的cc链,才有了更明显的理解,因为只有深入理解了java的classloader机制才会在后面构造cc链的时候

    2024年04月25日
    浏览(28)
  • Java多线程学习(Day02)

    线程简介 线程实现(重点) 线程状态 线程同步(重点) 线程通信问题 我们先调用run方法运行(注意run()方法在主函数中的顺序): 可以看出程序先运行完run线程再运行main主线程。符合程序按序执行的规制。同理如果将run()方法放在主函数的最后,那么先输出的将是\\\"主线程\\\"随后是\\\"副

    2024年02月08日
    浏览(35)
  • Java小白的学习之路——day12

    目录 一、final 什么是final? 二、接口概述  什么是接口? 与抽象类的区别 常量接口 接口传参多态 四、内部类 什么是内部类? 成员内部类 静态内部类 局部内部类 final从字面意思来看时最终的,不可改变的含义,它可以修饰在类、方法以及变量中 值得注意的是:final修饰类

    2024年02月13日
    浏览(49)
  • 【学习笔记】java项目—苍穹外卖day11

    Apache ECharts 营业额统计 用户统计 订单统计 销量排名Top10 功能实现: 数据统计 数据统计效果图: 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:https://echarts.apache.org/zh/index.html 常见效果

    2024年04月09日
    浏览(46)
  • C++学习 Day13

    目录 1. C++内存管理方式 1.1 new/delete操作内置类型 2.2 new和delete操作自定义类型 2. 定位new表达式(placement-new) C 语言内存管理方式在 C++ 中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,因 此 C++ 又提出了自己的内存管理方式: 通过 new 和 delete 操作符进行动

    2024年02月05日
    浏览(30)
  • 【Java】零基础上手SpringBoot学习日记(day1)

    此帖为本人学习Springboot时的笔记,由于是个接触计算机一年左右的新手,也没有网站开发经验,所以有些地方的理解会比较浅显并且可能会出现错误,望大佬们多多包涵和指正。 在我的理解中,Web应用的开发大体分为两个部分,一个是前端的页面设计以及实现,比如使用H

    2024年02月14日
    浏览(42)
  • 数模学习day13-典型相关分析

    典型相关分析(Canonical Correlation analysis)         研究两组变量(每组变量中都可能有多个指标)之间相关关系的一种多元统计方法。它能够揭示出两组变量之间的内在联系。 注:本文源于数学建模学习交流相关公众号观看学习视频后所作 目录 例子引入 解决思路 代表性

    2024年01月18日
    浏览(31)
  • JAVA基础学习笔记-day15-File类与IO流

    博文主要是自己学习JAVA基础中的笔记,供自己以后复习使用,参考的主要教程是B站的 尚硅谷宋红康2023大数据教程 老骥伏枥,志在千里 --曹操《龟虽寿》 1.1 概述 File类及本章下的各种流,都定义在 java.io 包下。 一个File对象代表硬盘或网络中可能存在的一个文件或者文件目

    2024年01月21日
    浏览(38)
  • JAVA基础学习笔记-day14-数据结构与集合源码2

    博文主要是自己学习JAVA基础中的笔记,供自己以后复习使用,参考的主要教程是B站的 尚硅谷宋红康2023大数据教程 君以此始,亦必以终。—左丘明《左传·宣公十二年》 7.1 List接口特点 List集合所有的元素是以一种 线性方式 进行存储的,例如,存元素的顺序是11、22、33。那

    2024年01月18日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包