Java文件输入输出(简单易懂版)

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

写在前面

  1. 在Java中不论文件输入还是输出都会用到File类,参考这篇文章Java File类(文件操作类)详解
  2. 这里会涉及到绝对路径、相对路径、路径中的斜杠“/”和反斜杠“\”,有些小伙伴可能不熟悉,参考这两篇文章绝对路径和相对路径详解, 斜杠’/’ 和反斜杠’’

文件输入

我们先来看一下此处的路径,Test.java是我们的程序代码,Coldplay.txt 是我们待会儿要读的文件。
Java文件输入输出(简单易懂版)
废话不多说,直接上代码:

import java.io.File;
import java.io.IOException;
import java.util.*;

public class Test {
    // 如果用一个不存在的文件构造 Scanner 可能会抛出I/O异常
    // 为了简单起见,只要在方法头中声明 throws Exception 即可
    public static void main(String[] args) throws IOException {
        // File 类是一个代表文件或目录的类,通常使用路径来初始化,允许使用绝对路径和相对路径
        // 此处使用相对路径
        File infile = new File("Coldplay.txt");

        // 读文件, 并将读到的内容打印到控制台
        // 为了避免一些乱码问题,我们制定编码方式为 UTF-8
        Scanner in = new Scanner(infile, "UTF-8");
        while (in.hasNext()) {
            String s = in.nextLine();
            System.out.println(s);
        }

        // 释放资源
        in.close();
    }
}

可以看到控制台上确实把 Coldplay.txt 中的内容打印了出来。
Java文件输入输出(简单易懂版)

另外关于路径有一点要说明,上面这个代码用的是相对路径,因为 Test.java 和 Coldplay.txt 在一个目录下,所以 “Coldplay.txt” 就可以;当然我们也可以用绝对路径,但是要注意
“D:\java_code\Coldplay.txt” ×
“D:\\java_code\\Coldplay.txt” √
“D:/java_code/Coldplay.txt” √
这是因为反斜杠\既可以在windows里表示路径分隔符,也可以在Java里表示转义字符,所以我们如果按照第一行的写法,Java不知道我们到底想表示路径分隔符还是转义字符。
所以如果需要在 Windows 的路径下包括反斜线,则应该使用两条反斜线(第二行)或直接使用斜线“/”也可以(第三行。这是因为Java 程序支持将斜线“/”当成平台无关的路径分隔符)

文件输出

先看代码:

import java.io.File;
import java.io.PrintWriter;
import java.io.IOException;

public class Test {
    // 如果用一个无法创建的文件名构造PrintWriter,可能会产生 I/O 异常
    // 为了简单起见,只要在方法头中声明 throws Exception 即可
    public static void main(String[] args) throws IOException {
        // File 类是一个代表文件或目录的类,通常使用路径来初始化,允许使用绝对路径和相对路径
        // 这里我们使用相对路径
        File outfile = new File("JayChou.txt");

        // 检查scores.txt是否存在,如果存在退出程序
        // 如果想实现重写覆盖,把这段注释掉就可以了
        if (outfile.exists()) {
            System.out.println("File already exists.");
            System.exit(1);
        }

        // 如果不存在则写文件
        // 为了避免一些乱码问题,我们制定编码方式为 UTF-8
        PrintWriter out = new PrintWriter(outfile, "UTF-8");
        out.print("Jay chou ");
        out.println("is a pop music star.");
        out.println("稻香");
        out.println("夜曲");
        out.println("青花瓷");

        // 释放资源
        out.close();
    }
}

可以看到确实多出来一个JayChou.txt,而且打开这个txt文件发现并不存在乱码。
Java文件输入输出(简单易懂版)

Java文件输入输出(简单易懂版)
关于编码这里我多说几句,一开始我写的是PrintWriter out = new PrintWriter(outfile);并没有加第二个参数 “UTF-8”,然后打开txt文件后发现是乱码。
出现乱码的原因是操作系统和Java程序使用的编码格式不同。中文Windows OS默认使用的是GBK编码,而IDE默认使用的是UTF-8编码。在Java中写入的汉字用的是IDE默认的UTF-8编码,而用txt去看则用的是操作系统默认的GBK编码,二者编码方式不一致所以会出现乱码。为了避免可能的中文乱码问题,最好在读写文件的时候显式指定编码格式,我们一般指定为UTF-8。文章来源地址https://www.toymoban.com/news/detail-461148.html

到了这里,关于Java文件输入输出(简单易懂版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • C++文件输入输出的简单实现(Debug)

            文件输入输出是个很有用的东西,有时比赛时要有:要求使用文件输入输出,还有时候……         遇到这种时间限制非常恶心的题目:手动测试会有误差……         文件输入输出 是个很好的选择!         C语言的写法有点复杂,涉及文件指针,本文不多介

    2024年02月19日
    浏览(23)
  • Java中简单的输入输出语句

    1.使用Scanner类 使用步骤: (1)导包 import java.util.Scanner; 这一步是必须要做的 !!! (2)使用Scanner创建对象 (3)输入数据 接下来用代码 区别next( )和nextLine( )。 next( )的实现: 因为其中有空格,所以== 当next( )遇到空格就停止执行。 nextLine( )的实现: 以上就是这两种输入输入字符串

    2024年02月07日
    浏览(33)
  • C++学习第二十天----简单文件输入/输出

    1.写入到文本文件中         必须声明自己的ofstream对象,为其命名,并将其同文件关联起来;         方法open()接受一个c-风格字符换作为参数,可以是一个字面字符串,也可以是存在数组中的字符串。         声明一个ofstream对象并将其同文件关联起来后,用于

    2024年02月11日
    浏览(29)
  • 【Java】文件的操作与输入输出流

    1. 狭义上的文件 : 硬盘上保存的数据,都是“文件”来组织的,本质上都是二进制或是字符组织的数组,被打包成一个文件存在硬盘上。常见的文件有图片,文本,可执行文件,音频,视频…文件夹也是一种特殊的文件,也叫目录通常所说的文件都是存储在硬盘上面的,硬

    2024年02月03日
    浏览(29)
  • JAVA高级技术-输入、输出系列-文件的天下大势

    回城传送–》《JAVA筑基100例》 题目:做一个合并多个文本文件的工具。 创建一个类:TextFileConcatenation 使用TextFileConcatenation继承JFrame构建窗体 读取文本文件时,用的是BufferedReader类的readLine()方法读入一行数据。 将选择的多个文本文件合并到d://concatenation.txt 启动: 合并前:

    2024年02月16日
    浏览(30)
  • Linux :: 文件内容操作【5】:echo 指令 与 输入重定向、输出重定向、追加重定向在文件内容写入中的简单用法!

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 说明:此处结合 「echo 指令」 提前引入 「重定向」 及 「管道」 的简单用法,深入的 「重定向」

    2024年02月01日
    浏览(38)
  • 头歌:Java高级特性 - IO流 (答案+详细注释)第1关:什么是IO流+第2关:字节流-输入输出+第3关:字符流 - 输入输出+第4关:复制文件

    目录 第1关:什么是IO流 第2关:字节流-输入输出 第3关:字符流 - 输入输出 第4关:复制文件

    2024年02月10日
    浏览(47)
  • 【Java基础:输入输出类】:Scanner类(输入输出)

    图片来自互联网 前言         一、Scanner是什么?         二、Scanner 的使用                  1.next()   获取字符的使用:          2.nextLine()  获取字符串的使用          3.next()和nextLine()的区别?          4.nextInt()、nextFloat()、nextDouble()  获取整

    2023年04月08日
    浏览(25)
  • C++输入输出和文件

    streambuf 类为缓冲区提供了内存,并提供了用于填充缓冲区、访问缓冲区内容、刷新缓冲区和管理缓冲区内存的类方法; ios_base 类表示流的一般特征,如是否可读取、是二进制流还是文本流等; ios 类基于ios_base,其中包括了一个指向streambuf对象的指针成员; ostream 类是从ios类

    2024年02月01日
    浏览(34)
  • python(17)--文件的输入/输出

    大家好!我是 码银 🥰 欢迎关注🥰: CSDN:码银 公众号:码银学编程 在Python中,文件文本操作是非常重要的,主要有以下几个原因: 数据持久性 :当你需要长期存储数据,如用户的个人信息、交易记录或数据库元数据等,将数据保存在文件中是一种常见的方法。文件系统

    2024年02月03日
    浏览(21)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包