Java学习笔记之----I/O(输入/输出)一

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

Java学习笔记之----I/O(输入/输出)一,学习,笔记

        在变量、数组和对象中存储的数据是暂时存在的,程序结束后它们就会丢失。想要永久地存储程序创建的数据,就需要将其保存在磁盘文件中(就是保存在电脑的C盘或D盘中),而只有数据存储起来才可以在其他程序中使用它们。Java的I/O技术可以将数据保存到文本文件、二进制文件甚至是ZIP压缩文件中,以达到永久性保存数据的要求。

Java学习笔记之----I/O(输入/输出)一,学习,笔记

目录

一   输入/输出流

 二 File类

1.文件的创建与删除 

第一种构造方法

第二种构造方法

第三种构造方法

2.File类的使用

(1)获取文件信息

(2)文件夹的操作

1.创建单层文件夹

2.创建多层文件夹

3.删除文件夹 

​编辑4. 获取文件夹下的所有子文件


 

一   输入/输出流

😶‍🌫️😶‍🌫️😶‍🌫️流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种。I/O(Input/Output,输入/输出)流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。虽然IO流通常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口等。
Java有数据流处理输入/输出模式,程序从指向源的输入流中读取源中的数据,如图所示。源可以是文件、网络、压缩包或其他数据源。

Java学习笔记之----I/O(输入/输出)一,学习,笔记Java学习笔记之----I/O(输入/输出)一,学习,笔记 Java语言定义了许多类专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有
输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出
流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。

Java学习笔记之----I/O(输入/输出)一,学习,笔记

 二 File类

File 类是java.io包中唯一代表磁盘文件本身的类。File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建、删除、重命名文件等操作。File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读写权限等。数据流可以将数据写入文件中,文件也是数据流最常用的数据媒体。

Java学习笔记之----I/O(输入/输出)一,学习,笔记

1.文件的创建与删除 

第一种构造方法

:File(String pathname)

该构造方法通过将给定的路径名字符串转换为抽象路径名来创建一个新File实列。

Java学习笔记之----I/O(输入/输出)一,学习,笔记

file创建中的抽象路径的三种表示方法 ,如图1,2,3;

图一:  在MyProject下创建一个word.txt。此时word.txt不在src的包里面。

Java学习笔记之----I/O(输入/输出)一,学习,笔记

图二: word.txt与Dome在同一个包中 

Java学习笔记之----I/O(输入/输出)一,学习,笔记

图三: 

Java学习笔记之----I/O(输入/输出)一,学习,笔记

那么我们来看一下决定路径下如何创建文件:

 1.首先,我们在c盘里面创建一个文件夹,名字为text;

Java学习笔记之----I/O(输入/输出)一,学习,笔记

2.然后 ,在text文件夹中创建一个文本,文本名为word.txt;

Java学习笔记之----I/O(输入/输出)一,学习,笔记

3.查看绝对路径,这里我们可以右键看属性,也可以直接双击上面的标题;

Java学习笔记之----I/O(输入/输出)一,学习,笔记

第二种构造方法

:File(String parent,String chid)

该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的File对象。语法如下:

new File(String parent,String child)

▢parent:父路径字符串,如D:/或D:/doc。

也就是说他它所在的位置信息。
▢child:子路径字符串,如letter.txt。

文档,项目的名字。

Java学习笔记之----I/O(输入/输出)一,学习,笔记

第三种构造方法

:File(File f, String child)

该构造方法根据f抽象路径名和child路径名字符串创建一个新File实例。语法如下:

new File(File f,String child)

▢f:父路径对象,如D:/doc/。
▢child:子路径字符串,如letter.txt。

Java学习笔记之----I/O(输入/输出)一,学习,笔记

 【源码】

package my;

import java.io.File;

public class Demo {
	public static void main(String[] args) {
		/*
		 * 项目下的路径(默认路径):word.txt
		 * 包中的文件路径:src/my/word.txt
		 * 注意: 可以用/表示文件夹
		 *       可以用\\表示文件夹(转义字符)
		 * 绝对路径:C:\\text\\word.txt
		 */     
		File f1 = new File("C:\\text\\word.txt");//第一种构造方法
		
		File f2 = new File("C:\\text\\","word.txt");//第二种构造方法
		/*
		 * parent:C:\\text\\(文件在c盘的文件夹text中)
		 * child:word.txt(它的文档名字是word.txt)
		 */
		
		File dir = new File("C:\\text\\");//文件夹
		File f3 = new File(dir,"word.txt");//第三种构造方法
		/*
		 * 也可以用下面的式子表示
		 * File f3 = new File(new File("C:\\text\\"),"word.txt");
		 */
		
		System.out.println(f1.getAbsolutePath());
		System.out.println(f2.getAbsolutePath());
		System.out.println(f3.getAbsolutePath());
		
		System.out.println(f1==f2);
		/*
		 * f1和f2不相等是因为它们是通过不同的构造方法创建的对象。
		 * 尽管它们的路径和文件名都相同,但它们是两个不同的对象。
		 * 比较两个对象时,需要使用.equals()方法而不是==运算符。
		 * 所以应该使用f1.equals(f2)来比较它们是否相等。
		 * 他们只是一个代表,好比a与b是朋友,c也与b是朋友,而a与c并不一定是朋友。
		 */
		System.out.println(f1.equals(f2));
		
	}
}

2.File类的使用

(1)获取文件信息

File类提供了很多方法用来获取文件本身信息。如表:

Java学习笔记之----I/O(输入/输出)一,学习,笔记

【代码】 

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Demo {
	public static void main(String[] args) {
		File f1 = new File("C:\\text\\word.txt");
		System.out.println("文件是否存在:"+f1.exists());
		System.out.println("文件名:"+f1.getName());
		System.out.println("文件的绝对路径:"+f1.getAbsolutePath());
		System.out.println("文件是否隐藏:"+f1.isHidden());
		System.out.println("文件大小:"+f1.length());
		Date date = new Date(f1.lastModified());
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		System.out.println("文件最后的修改时间:"+sdf.format(date));
		
		boolean f = f1.delete();
		System.out.println("文件是否删除成功:"+f);
		try {
			boolean fl = f1.createNewFile();
			System.out.println("创建文件是否成功:"+fl);
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
		
	}

}

【运行结果】 

Java学习笔记之----I/O(输入/输出)一,学习,笔记

Java学习笔记之----I/O(输入/输出)一,学习,笔记 运行完后我们会发现word文件大小变为0了,这是因为我们删除了,又重新创建的原因。

(2)文件夹的操作

1.创建单层文件夹

创建单层文件夹用mkdir()或mkdirs()方法。

package mt;

import java.io.File;

public class Demo {
	public static void main(String[] args) {
		File dir = new File("dir");
		boolean flag = dir.mkdir();//创建文件夹
		System.out.println("创建文件夹是否成功:"+flag);
	}

}

创建前我们可以看到左侧没有dir文件: 

Java学习笔记之----I/O(输入/输出)一,学习,笔记

运行刷新后:

Java学习笔记之----I/O(输入/输出)一,学习,笔记我们可以发现左侧出现了dir文件夹的图标。 

2.创建多层文件夹

创建多层文件夹我们要用mkdirs()方法;

【代码】 

package mt;

import java.io.File;

public class Demo {
	public static void main(String[] args) {
		File dir = new File("dir/dir2/dir3/dir4/");
		boolean flag = dir.mkdir();//创建文件夹
		boolean flag2 = dir.mkdirs();//创建文件夹及其父文件夹
		System.out.println("创建文件夹是否成功:"+flag);
		System.out.println("创建多层文件夹是否成功:"+flag2);
	}

}

【运行结果】 

Java学习笔记之----I/O(输入/输出)一,学习,笔记

3.删除文件夹 

删除文件夹用delete()方法,默认删除最后一个文件夹。

【代码】 

package mt;

import java.io.File;

public class Demo {
	public static void main(String[] args) {
		File dir = new File("dir/dir2/dir3/dir4/");
		boolean flag = dir.mkdir();//创建文件夹
		boolean flag2 = dir.mkdirs();//创建文件夹及其父文件夹
		System.out.println("创建文件夹是否成功:"+flag);
		System.out.println("创建多层文件夹是否成功:"+flag2);
		
		boolean de1 = dir.delete();
		System.out.println("删除文件夹是否成功:"+de1);
	}

}

【运行结果】 

Java学习笔记之----I/O(输入/输出)一,学习,笔记4. 获取文件夹下的所有子文件

 【代码】

package mt;

import java.io.File;

public class Demo {
	public static void main(String[] args) {
		File f = new File("C:\\windows\\");
		File files[] = f.listFiles();
		for(File tmp:files) {
			if(tmp.isFile()) {
				System.out.println("文件:"+tmp.getName());
			}else if(tmp.isDirectory()){
				System.out.println("文件夹:"+tmp.getName());
			}
		}

	}

}

【运行结果】 

Java学习笔记之----I/O(输入/输出)一,学习,笔记文章来源地址https://www.toymoban.com/news/detail-690947.html

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

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

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

相关文章

  • stm32学习笔记-3GPIO通用输入输出口

    注:笔记主要参考B站 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注:工程及代码文件放在了本人的Github仓库。 GPIO (General Purpose Input Output) 通用输入输出口 可配置为8种输入输出模式。 引脚电平范围为0V~3.3V ,部分引脚可容忍5V(图1-6中IO口电平为FT标识的)

    2024年02月15日
    浏览(119)
  • 深度学习——卷积层的输入输出多通道(笔记)+代码

    一 输入通道 1.多个输入通道 ①彩色图像有RGB(红绿蓝组成)三个通道 ②转换为灰度会丢失信息 灰度一个通道 2.多个通道输出的结果:只有一个输出 每个通道都有对应的卷积核,输出的结果是所有通道卷积核的和 【演示】二个通道的输出结果 输出结果某个值的计算:  3.输

    2024年02月07日
    浏览(49)
  • JAVA学习:IO流篇(输入输出流)

    输入:将文件以数据流的形式读取到java程序中 输出:通过java程序将数据流写入文件中 按照方向分,可以分为输入流和输出流。 按照单位分,可以分为字节流和字符流,字节流是指每次处理的数据以字节为单位,字符流是指每次处理的数据以字符为单位。 按照功能分,可以

    2023年04月16日
    浏览(41)
  • Java学习手册——第六篇输入输出

    几乎所有的开发语言都会有输入输出,程序的定义里面也有输入输出,可以见得输入输出是何等的重要。如果没有输入,人类如何与计算机交流?如果没有输出,一切努力都是白费,因为我们看不到结果。 这里的输入输出你可以简单的理解为人与人之间的沟通交流,虽然我们

    2024年02月02日
    浏览(46)
  • 【ESP32最全学习笔记(基础篇)——5.ESP32 数字输入和数字输出(Arduino IDE)】

    关于本教程: 1.ESP32简介                                                                 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 ☑ 6.ESP32 脉宽调制 7.ESP32 模拟输入 8.ESP32 中断定时器 9 .ESP32 深度睡眠 ESP32 网络

    2024年02月01日
    浏览(99)
  • STM32 F103C8T6学习笔记2:GPIO的认识—GPIO的基本输入输出—点亮一个LED

    今日继续学习使用  STM32 F103C8T6开发板 点亮一个LED灯,文章提供源码,测试工程,实验效果图,希望我的归纳总结会对大家有帮助~ 目录 GPIO的认识与分类 : 引脚安排整理: 定时器的引脚例举: 串口的引脚例举:  CAN串口通信: SPI通信: IIC通信:  其余引脚: 烧录引脚:

    2024年02月11日
    浏览(52)
  • 【Java学习笔记】16.Java 格式化输出 printf 用法

    Java 格式化输出 printf 用法 Java 中的 printf 方法用于格式化输出。 格式化指定了输出的形式,包括数字的精度、字符宽度、日期格式等等。下面是一些常用的格式化符号和用法: 字符串格式化 %s : 输出字符串 实例 整数格式化 %d : 输出十进制整数 %o : 输出八进制整数 %x : 输出十

    2024年02月07日
    浏览(46)
  • C/C++|物联网开发入门+项目实战|函数输入与输出|值传递|地址传递|连续空间的传递|嵌入式C语言高级|C语言函数的使用-学习笔记(11)

    参考: 麦子学院-嵌入式C语言高级-C语言函数的使用 一堆代码的集合,用一个标签去描述它 复用化,降低冗余度 标签 ------ 函数名 函数和数组都属于内存空间,函数具备3要素: int *p; int a[100]; 1、函数名(地址) 2、输入参数 3、返回值 在定义函数时,必须将3要素告知编译器

    2023年04月20日
    浏览(55)
  • 【Java基础:输入输出类】:Scanner类(输入输出)

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

    2023年04月08日
    浏览(39)
  • 操作系统-笔记-第五章-输入输出管理

    一、第一章——操作系统的概念 二、第二章——【进程】 二、第二章——【线程】​编辑 二、第二章——【进程调度】 二、第二章——【进程同步与互斥】 二、第二章——【锁】 三、第三章——内存管理 四、第四章——文件管理 五、第五章——输入输出管理 🚀 学习心

    2024年02月11日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包