Java文件输入输出(简单易懂版)
创始人
2024-03-19 17:51:17
0

文章目录

  • 写在前面
  • 文件输入
  • 文件输出

写在前面

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

文件输入

我们先来看一下此处的路径,Test.java是我们的程序代码,Coldplay.txt 是我们待会儿要读的文件。
在这里插入图片描述
废话不多说,直接上代码:

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-8Scanner in = new Scanner(infile, "UTF-8");while (in.hasNext()) {String s = in.nextLine();System.out.println(s);}// 释放资源in.close();}
}

可以看到控制台上确实把 Coldplay.txt 中的内容打印了出来。
在这里插入图片描述

另外关于路径有一点要说明,上面这个代码用的是相对路径,因为 Test.java 和 Coldplay.txt 在一个目录下,所以 “Coldplay.txt” 就可以;当然我们也可以用绝对路径,但是要注意
“D:\java_code” ×
“D:\\java_code” √
“D:/java_code” √
这是因为反斜杠\既可以在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-8PrintWriter 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文件发现并不存在乱码。
在这里插入图片描述

在这里插入图片描述
关于编码这里我多说几句,一开始我写的是PrintWriter out = new PrintWriter(outfile);并没有加第二个参数 “UTF-8”,然后打开txt文件后发现是乱码。
出现乱码的原因是操作系统和Java程序使用的编码格式不同。中文Windows OS默认使用的是GBK编码,而IDE默认使用的是UTF-8编码。在Java中写入的汉字用的是IDE默认的UTF-8编码,而用txt去看则用的是操作系统默认的GBK编码,二者编码方式不一致所以会出现乱码。为了避免可能的中文乱码问题,最好在读写文件的时候显式指定编码格式,我们一般指定为UTF-8。

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...