Java零基础入门-输入与输出

哈喽,各位小伙伴们,你们好呀,我是喵手。

今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

Java作为一种流行的编程语言,为开发人员提供了许多灵活的输入和输出方式。本文将介绍Java的输入输出(I/O)基础知识并提供相关示例。这些示例将帮助读者更好地理解Java的输入输出。

摘要

在Java中,输入和输出是通过流(stream)实现的。流表示从输入源(如文件或网络)获取数据或将数据发送到输出目标的方式。

Java的I/O包提供了许多与文件、控制台、网络和其他I/O设备的交互方式。Java中的流有两种类型:字节流和字符流。字节流可以读取字节和写入字节,字符流可以读取字符和写入字符。

Java之输入与输出

简介

Java的I/O包提供了许多类和接口来执行输入和输出操作。这些类和接口包括File类、InputStream和OutputStream类、Reader和Writer类、BufferedReader和PrintWriter类、DataInputStream和DataOutputStream类等等。

在使用Java进行文件I/O时,我们通常需要指定文件的路径。Java中的文件路径可以是相对路径或绝对路径。相对路径是相对于Java运行时的当前目录,而绝对路径则是从该文件系统的根开始的完整路径。

源代码解析

写入文件

下面的代码示例演示了如何使用Java的FileWriter类将数据写入文件:

java 复制代码
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFile {
    public static void main(String[] args) {
        String data = "Hello, World!";
        String fileName = "output.txt";

        try {
            FileWriter writer = new FileWriter(fileName);
            writer.write(data);
            writer.close();
            System.out.println("Data has been written to the file.");
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

上面的代码创建了一个名为output.txt的文件并将字符串"Hello, World!"写入其中。使用FileWriter类可以很容易地完成这个任务。

读取文件

下面的代码示例演示了如何使用Java的FileReader类从文件中读取数据:

java 复制代码
import java.io.FileReader;
import java.io.IOException;

public class ReadFromFile {
    public static void main(String[] args) {
        String fileName = "input.txt";

        try {
            FileReader reader = new FileReader(fileName);
            int character;

            while ((character = reader.read()) != -1) {
                System.out.print((char) character);
            }

            reader.close();
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

上面的代码创建了一个名为input.txt的文件并从文件中读取所有内容。在这个示例中,我们使用了FileReader类来实现。使用while循环一次读取一个字符,直到达到文件的结尾。最后,我们关闭了reader对象以便释放资源。

应用场景案例

Java的I/O包可以在许多方面帮助我们处理文件和其他数据源。以下是一些使用Java I/O执行的常见任务:

  1. 读取和解析CSV文件。
  2. 从URL中读取HTML数据。
  3. 通过网络发送和接收数据。
  4. 将数据写入数据库。

优缺点分析

Java I/O的主要优点是它提供了许多不同类型的流以处理各种数据类型。Java I/O还提供了灵活的API,使开发人员可以使用不同的输入/输出源并以不同的方式处理数据。另外,Java I/O是平台无关的,因此可以在不同的操作系统上运行。Java I/O的主要缺点是它可能会变得相当复杂,尤其是当涉及到处理大量数据时。

类代码方法介绍

File类

File类提供了用于创建、删除、重命名和查找文件和目录的方法。以下是一些常用的File类方法:

java 复制代码
public boolean exists()

该方法返回一个布尔值,指示该文件或目录是否存在。

java 复制代码
public boolean isDirectory()

该方法返回一个布尔值,指示该File对象是否代表一个目录。

java 复制代码
public boolean isFile()

该方法返回一个布尔值,指示该File对象是否代表一个文件。

InputStream和OutputStream类

InputStream和OutputStream类是Java I/O中最基本的类之一。InputStream类表示从输入源读取数据的输入流。OutputStream类表示将数据写入输出目标的输出流。以下是一些常用的InputStream和OutputStream类方法:

java 复制代码
public abstract int read() throws IOException

该方法从输入流中读取下一个字节,并返回一个int类型的值。如果已经到达流的末尾,则返回-1。

java 复制代码
public void write(byte[] b) throws IOException

该方法将一个字节数组写入输出流。

BufferedReader和PrintWriter类

BufferedReader和PrintWriter类是Java I/O中一个非常有用的工具。BufferedReader类提供了一种逐行读取输入的方式,PrintWriter类则提供了一种将对象格式化为文本并写入输出的方式。以下是一些常用的BufferedReader和PrintWriter类方法:

java 复制代码
public String readLine() throws IOException

该方法从输入流中读取一行文本,并返回一个字符串。如果已经到达流的末尾,则返回null。

java 复制代码
public void println(Object obj)

该方法将一个对象转换为字符串,并将其写入输出流。它还将自动附加一个换行符。

DataInputStream和DataOutputStream类

DataInputStream和DataOutputStream类提供了一种将Java类型转换为字节数据以写入输出流的方式,以及将字节数据转换回Java类型以读取输入流的方式。以下是一些常用的DataInputStream和DataOutputStream类方法:

java 复制代码
public void writeInt(int value) throws IOException

该方法将一个int类型的值写入输出流。

java 复制代码
public int readInt() throws IOException

该方法从输入流中读取四个字节,并将它们转换为一个int类型的值。

测试用例

以下是一个简单的测试用例,用于演示如何在Java中使用文件I/O:

java 复制代码
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class TestFileIO {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter file name: ");
        String fileName = scanner.nextLine();

        try {
            File file = new File(fileName);
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter writer = new FileWriter(file);
            System.out.print("Enter text: ");
            String text = scanner.nextLine();
            writer.write(text);
            writer.close();

            System.out.println("Text has been written to the file.");
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

上面的代码将从用户输入中获取文件名和文本,并将文本写入指定的文件中。如果文件不存在,则会自动创建一个新文件。

全文小结

在本文中,我们介绍了Java的输入输出基础知识,并提供了一些相关示例。我们还讨论了Java I/O的常见应用场景,并分析了其优缺点。最后,我们介绍了一些常用的Java I/O类及其方法,并提供了一个简单的测试用例。

总结

Java的输入和输出是通过流实现的,Java的I/O包提供了许多类和接口来执行输入和输出操作。当使用Java进行文件I/O时,我们需要指定文件的路径,Java中的文件路径可以是相对路径或绝对路径。在处理大量数据时,Java I/O可能会变得相当复杂。Java I/O的主要优点是提供了许多不同类型的流以处理各种数据类型,同时Java I/O还是平台无关的。

... ...

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

... ...

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

相关推荐
_oP_i1 分钟前
Pinpoint 是一个开源的分布式追踪系统
java·分布式·开源
mmsx4 分钟前
android sqlite 数据库简单封装示例(java)
android·java·数据库
bryant_meng6 分钟前
【python】OpenCV—Image Moments
开发语言·python·opencv·moments·图片矩
武子康29 分钟前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
若亦_Royi30 分钟前
C++ 的大括号的用法合集
开发语言·c++
资源补给站1 小时前
大恒相机开发(2)—Python软触发调用采集图像
开发语言·python·数码相机
豪宇刘1 小时前
MyBatis的面试题以及详细解答二
java·servlet·tomcat
秋恬意2 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
m0_748247552 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
6.942 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala