源:InputStream Reader
目的:OutputStream Writer
源:
字节:InputStream
文本:Reader
目的:
字节:OutputStream
文本:Writer
源设备:
硬盘:文件File
开头
内存:数组、字符串
键盘:System in
网络:Socket
对应目的设备:
硬盘:文件File
开头
内存:数组、字符串
键盘:System out
网络:Socket
需要转换:转换流InputStreamReader、OutputStreamWriter
需要高效:缓冲流Buffered
保证数据的输出格式:打印流PrintStream、PrintWriterIO流的分类
java.io.File
类是专门对文件进行操作的类,只能对文件本身进行操作,不能对文件内容进行操作。
java.io.File
类是文件和目录路径的抽象表示,主要用于文件和目录的创建、查找和删除。
public File(String pathname
:通过将给定的路径名字符串转换成抽象路径名来创建新的File实例。public File(String parent, String child
:从父路径名字符串和子路径名字符串创建新的File实例。public File(File parent, String child
:从父抽象路径名和子路径名字符串创建新的File实例。1. 一个File对象代表硬盘中实际存在的一个文件或者目录。
2. File类构造方法不会给你检验这个文件或文件夹是否真实存在,因此无论该路径下是否存在文件或者目录,都不影响File对象的创建。
// 文件路径名
String path = "D:\\123.txt";
File file1 = new File(path);
// 文件路径名
String path2 = "D:\\1\\2.txt";
File file2 = new File(path2); -------------相当于D:\\1\\2.txt
// 通过父路径和子路径字符串
String parent = "F:\\aaa";
String child = "bbb.txt";
File file3 = new File(parent, child); --------相当于F:\\aaa\\bbb.txt
// 通过父级File对象和子路径字符串
File parentDir = new File("F:\\aaa");
String child = "bbb.txt";
File file4 = new File(parentDir, child); --------相当于F:\\aaa\\bbb.txt
File类的注意点:
1、一个File对象代表键盘中实际存在一个文件或目录。
2、File类构造方法不会给你检验这个文件或文件夹是否真实存在,因此无论该路径下是否存在文件或者目录,
都不影响File对象的创建。
public String getAbsolutePath()
:返回此File的绝对路径名字符串。public String getPath()
:将此File转换为路径名字符串。public String getName()
:返回由此File表示的文件或目录的名称。public long length()
:返回由此File表示的文件的长度。package demo01;
import java.io.File;
public class FileGet {
public static void main(String[] args) {
File f = new File("E:\\Java\\javaSE\\thread\\thread-study\\笔记\\多线程.md");
System.out.println("文件的绝对路径:" + f.getAbsolutePath());
System.out.println("文件构造路径:" + f.getPath());
System.out.println("文件名称:" + f.getName());
System.out.println("文件长度:" + f.length() + "字节");
File f2 = new File("E:\\Java\\javaSE\\thread\\thread-study\\笔记");
System.out.println("目录的绝对路径:" + f2.getAbsolutePath());
System.out.println("目录构造路径:" + f2.getPath());
System.out.println("目录名称:" + f2.getName());
System.out.println("目录长度:" + f2.length());
}
}
注意:
length()
,表示文件的长度。但是File
对象表示目录,则返回值未指定。
绝对路径:一个完整的路径,以盘符开头,例如E://aaa.txt
。
相对路径:一个简化的路径,不以盘符开头,例如//aaa.txt//b.txt
。
1、路径不区分大小写
2、路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠
package demo01;
import java.io.File;
public class FilePath {
public static void main(String[] args) {
File f1 = new File("E:\\aaa.txt");
System.out.println(f1.getAbsoluteFile());
File f2 = new File("aaa.txt");
System.out.println(f2.getAbsoluteFile());
}
}
输出结果:
E:\aaa.txt
E:\Java\javaSE\IOStream\IOStream-Study\aaa.txt
public boolean exists()
:此File表示的文件或目录是否实际存在。public boolean isDirectory()
:此File是否为目录。public boolean isFile()
:此File是否为文件。package demo01;
import java.io.File;
public class FileIs {
public static void main(String[] args) {
File f1 = new File("E:\\aaa.txt");
File f2 = new File("E:\\aaa");
//判断是否存在
System.out.println("文件是否存在:" + f1.exists());
System.out.println("目录是否存在:" + f2.exists());
//判断是文件还是目录
System.out.println("E:\\aaa是文件吗?" + f2.isFile());
System.out.println("E:\\aaa是目录吗?" + f2.isDirectory());
}
}
运行结果:
文件是否存在:true
目录是否存在:true
E:\aaa是文件吗?false
E:\aaa是目录吗?true
public boolean creatNewFile()
:文件不存在,创建一个新的文件夹并返回true
;文件存在,不创建文件false
。public boolean delete()
:删除此File表示的文件或目录。public boolean mkdir()
:创建由此File表示的目录。public boolean mkdirs()
:创建由此File表示的目录,可以创建多级目录。开发中一般使用mkdirs()
。package demo01;
import java.io.File;
import java.io.IOException;
public class FileCreateDelete {
public static void main(String[] args) throws IOException {
//文件的创建
File f1 = new File("bbb.txt");
System.out.println("bbb.txt是否存在:" + f1.exists());//false 不存在
System.out.println("bbb.txt是否创建:" + f1.createNewFile());//true 需要创建
System.out.println("bbb.txt是否创建:" + f1.createNewFile());//false 已经创建了,不需要再创建
System.out.println("bbb.txt是否存在:" + f1.exists());//true 创建了,所以存在
//目录的创建
File f2 = new File("newDir");
System.out.println("newDir是否存在:" + f2.exists());//false
System.out.println("newDir是否创建:" + f2.createNewFile());//true
System.out.println("newDir是否存在:" + f2.exists());//true
//创建多级目录
File f3 = new File("newDira\\newDirb");
System.out.println(f3.mkdir());//false
File f4 = new File("newDira\\newDirb");
System.out.println(f4
文章浏览阅读357次。题意:有一个长度已知的01串,给出[l,r]这个区间中的1是奇数个还是偶数个,给出一系列语句问前几个是正确的思路:一类经典的并查集题目,经典模型就是将[l,r]这个区间化为(l-1,r],那么1的个数就可以表示为sum[r]-sum[l-1],也就确定了奇偶性,我们可以用r[]数组表示这个端点到它的根节点的1的奇偶(这个区间就是(i,root(i)](0代表偶,1代表奇_partiy game poj1733
文章浏览阅读611次。在游戏性能方面怎样呢?笔者通过热门游戏王者荣耀对两款产品的帧数浮动和温度进行了分别测试。华为畅享9 Plus使用下来的帧率变化为55-60帧,游戏时表现的机身温度是33.5℃。OPPO A3使用下来帧率变化为55-58帧,游戏时的温度表现是34.2℃。两者虽然都没有在游戏过程中出现太频繁的卡顿,但整个体验而言,华为畅享9 Plus的流畅性好更好些,画面的连续性输出效果不错,而且温度控制的也在可接受..._华为畅享9plus和oppoa3哪个好
文章浏览阅读2.4k次。电脑由许多连接在一起的基本细胞(也叫做神经元)来产生高度复杂的模式。McCulloch 和 Pitts于是在1943年给出了一个高度简化的神经元模型,以用于对生物神经元进行关键特征建模。也就是我们常说的MP或者MCP模型。MP的核心思想是每个MCP神经元网络都编码一些逻辑问题,但注意MP神经元并非真正的神经元。却对今天的神经网络和计算机都具有很强的启发性。MP具有全有或全无的特征,比如常用的逻辑运算只有1和0两种结果。这种特征由阈值进行控制。MP的连接可以理解为检测器,如某个_mcp神经元
文章浏览阅读141次。你的位置:问答吧-> VB-> 问题详情VB有类似C语言里的memset函数吗?网上查的如下:原型是extern void *memset(void *buffer, int c, int count)buffer为指针或是数组,c是赋给buffer的值,count是buffer的长度.void *memset..._c++ memset函数 对应vb
文章浏览阅读9.7k次,点赞10次,收藏46次。Frame控件、Text控件学习,制作简易聊天窗口布局:#!/usr/bin/env python3# _*_ coding:utf-8 _*_from tkinter import *import time'''定义消息发送函数:1、在<消息列表分区>的文本控件中实时添加时间;2、获取<发送消息分区>的文本内容,添加到列表分区的文本中;3、将<发..._python tkinter高级聊天界面
文章浏览阅读3.2k次,点赞5次,收藏5次。试题编号: 201809-1 试题名称: 卖菜 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自..._python奶奶卖菜
文章浏览阅读1.5k次,点赞5次,收藏4次。原理摘自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html如果看不懂或者对此没有需求的同学可以直接翻到底查看 python 实现一、基础数论1、互质关系如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。比如,15和32没有公因子,所以它们是互质关系。这说明,不是质数也可以构成..._rsa 的python代码
文章浏览阅读156次。官网镇楼 ViewModel 概览 | Android 开发者 | Android Developershttps://developer.android.google.cn/topic/libraries/architecture/viewmodel?hl=zh_cn#kotlinViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。ViewModel 是用于管理数据的,界面上的数据,都应该放到 ViewM_viewmodel 延迟初始化
文章浏览阅读1k次。文章目录变量重命名变量重命名countalgorithm库和std命名空间indexcstring/string.h库和std命名空间_c++ error
文章浏览阅读3.2k次,点赞15次,收藏22次。ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现目录机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现代码实现机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现输出结果Save success! F:\File_Python\Resources\data\data_test01.csv<class 'pandas.core.frame.DataFram..._多标签分类数据集类别可视化代码
文章浏览阅读693次。date指令-显示当前日期• 基本语法 1) date (功能描述:显示当前时间) 2) date +%Y (功能描述:显示当前年份) 3) date +%m (功能描述:显示当前月份) 4) date +%d (功能描述:显示当前是哪一天) 5) date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)• 应用实例 案例1: 显示当前时间信息 案例2:..._date +%m%d
文章浏览阅读7.9k次,点赞5次,收藏6次。问题:将Makefile中的CC==gcc改为arm-hisiv500-linux-gcc后make出现以下错误:/usr/bin/ld: adler32.lo: Relocations in generic ELF (EM: 40)adler32.lo: error adding symbols: File in wrong formatcollect2: error: ld ret_/usr/bin/ld: adler32.lo: relocations in generic elf (em: 40)