IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> I-O流、 -> 正文阅读

[Java知识库]I-O流、

目录

I-O流

.close方法

常用方法

字符流的写和读

字节流的写和读

读?

图片复制例题

序列化与反序列化

序列化

?? 反序列化??


I-O流

.close方法

package demo211207;

import java.util.Scanner;

//GC=自动垃圾回收机制
//垃圾回收算法
//垃圾回收器//IO流
//I=input
//O=output
//流

public class TestA {

?? ?public static void main(String[] args) {
?? ??? ?Scanner scan = new Scanner(System.in);
?? ??? ?String line = scan.nextLine();// 控制台输入
?? ??? ?System.out.println(line);
?? ??? ?scan.close();// 关闭

?? ??? ?TestA ta = new TestA();
?? ??? ?ta = null;
?? ??? ?
?? ?}

}


package demo211207;

常用方法

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

public class TestB {

	public static void main(String[] args) throws IOException {
		File file;// 文件系统
		// window \
		// linux /
		System.out.println(File.separatorChar);// 文件分隔符
		// 绝对路径
		// windows=盘符开始,如D:\\test\\temp.txt
		File f1 = new File("D:\\test\\temp.txt");// String--文件路径
		System.out.println(f1.getAbsolutePath());
		System.out.println(f1.getPath());
		// 相对路径
		// 相对于某个位置的路径
		File f2 = new File("../temp.txt");// ./当前目录 ../上一级目录
		System.out.println(f2.getAbsolutePath());
		System.out.println(f2.getPath());

		File f3 = new File("D:\\test\\temp111.txt");
		File f4 = new File("D:\\test");
		System.out.println(f3.exists());//判断是否存在,可能不存在
		System.out.println(f3.isFile());//判断是否文件,也许可能是文件或者目录
		System.out.println(f4.isDirectory());//检查一个对象是否是文件夹
		System.out.println(f3.isHidden());//判断是否为隐藏文件
		f3.createNewFile();
		f4.mkdir();
//		f3.renameTo();
//		f3.delete();//不放入回收站
//		f3.deleteOnExit()
		String[] list = f4.list();//获取当前目录下所有文件
		File[] files = f4.listFiles();//File类型的数组,返回的是该目录中的文件和目录

		long len = f3.length();// 文件大小
		String p = f3.getParent();//getParent()父路径
		long d = f3.lastModified();//返回这个抽象路径名所表示的文件最后一次修改的时间。
//		File.listRoots();
	}

}

?常用方法:

boolean exists() //表示当前路径是否存在
boolean isFile() //判断当前路劲是否是文件
boolean isDirectory() //判断当前是否为目录
boolean isHidden() //判断是否是隐藏文件
void deleteOnExit() //在程序退出时删除
boolean delete() //直接删除
boolean createNewFile() //创建新文件 在当前文件不存在的情况下,创建成功返回true,文件存在返回false
file.mkdir(); //创建目录
file.getName();// 获取文件名
file.getAbsolutePath();//获取绝对路径
file.list(); //获取当前目录下所有文件
String[] list(FilenameFilter filter)  //获取过滤后的目录或文件


ackage demo211207;

字符流的写和读

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

//流-基本使用-核心步骤
//1-创建流
//2-读入/写出
//3-关闭

//类型-分类
//字节流(OutputStream/InputStream)--以字节的形式,绝大部分数据文件,图片音频视频
//字符流(Writer/Reader)--以字符的形式,对字符文本类型的数据进行操作//方向-流向
//输入
//输出

public class TestC {

?? ?public static void main(String[] args) throws IOException {
?? ??? ?File file = new File("D:\\test\\temp111.txt");
?? ??? ?FileWriter fw = new FileWriter(file);
?? ??? ?// FileWriter fw = new FileWriter("D:\\test\\temp111.txt");
?? ??? ?fw.write("abcdefg");
?? ??? ?fw.close();
?? ??? ?fw = null;
?? ?}


package demo211207;

import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;

//终端流-直接与目标终端打交道
//拼接流-直接与流打交道(构造方法可以看出来)
//流向一致=拼接流与终端流

public class TestD {

	public static void main(String[] args) throws IOException {
		File file = new File("D:\\test\\temp111.txt");
		FileReader fr = new FileReader(file);

		BufferedReader br = new BufferedReader(fr);// 缓冲流、缓存流
		String line = br.readLine();
		System.out.println(line);

		br.close();
		fr.close();
		file.canExecute();

		br = null;
		fr = null;
		file = null;
	}

	public static void main1(String[] args) throws IOException {
		File file = new File("D:\\test\\temp111.txt");
		FileReader fr = new FileReader(file);
//		System.out.println(Arrays.toString(cubf));
		char[] cubf = new char[100];// 缓冲/缓存区
		int len = fr.read(cubf);
//		System.out.println(Arrays.toString(cubf));
//		System.out.println(len);
		cubf = Arrays.copyOf(cubf, len);
//		System.out.println(Arrays.toString(cubf));
		String line = new String(cubf);
		System.out.println(line);

		fr.close();
		fr = null;
	}
}


字节流的写和读

package demo211207;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.UUID;

public class TestE {

?? ?public static void main(String[] args) throws IOException {
?? ??? ?FileInputStream fis = new FileInputStream("D:\\test\\temp111.txt");

?? ??? ?byte[] data = new byte[1024];// 缓冲区
?? ??? ?int len = fis.read(data);
?? ??? ?data = Arrays.copyOf(data, len);
?? ??? ?System.out.println(new String(data));

?? ??? ?fis.close();
?? ??? ?fis = null;
?? ?}

读?

? ?public static void main2(String[] args) throws IOException {
?? ??? ?FileOutputStream fos = new FileOutputStream("D:\\test\\temp111.txt");
?? ??? ?String s = "123456789";
?? ??? ?byte[] b = s.getBytes();
?? ??? ?fos.write(b);

?? ??? ?fos.close();
?? ??? ?fos = null;
?? ?}
}


package demo211207;

图片复制例题

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
//1.复制a文件夹下一张图片到b文件夹下
//2.复制a文件夹所有张图片到b文件夹下

public class TestF {

?? ?public static void main(String[] args) throws IOException {
?? ??? ?File fileA = new File("D:\\a");
?? ??? ?File fileB = new File("D:\\b");
?? ??? ?File fileC = new File("D:\\a\\318393.jpg");
?? ??? ?copyAll(fileA, fileB);
?? ??? ?copy(fileC, fileB);

?? ?}

?? ?public static void copyAll(File in, File out) throws IOException {
?? ??? ?File[] file = in.listFiles();// 得到每个文件
?? ??? ?for (File a : file) {
?? ??? ??? ?copy(a, out);
?? ??? ?}

?? ?}

?? ?public static void copy(File in, File out) throws IOException {
?? ??? ?FileInputStream fis = new FileInputStream(in);
?? ??? ?String temp = out.getAbsolutePath() + "\\" + in.getName();
?? ??? ?FileOutputStream fos = new FileOutputStream(temp);

?? ??? ?byte[] data = new byte[1024 * 1024];
?? ??? ?int len = -1;
?? ??? ?while ((len = fis.read(data)) != -1) {
?? ??? ??? ?data = Arrays.copyOf(data, len);
?? ??? ??? ?fos.write(data);
?? ??? ?}

?? ??? ?fos.close();
?? ??? ?fis.close();

?? ??? ?fos = null;
?? ??? ?fis = null;

?? ?}

}


序列化与反序列化

package demo211207;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

序列化

 ?public static void main1(String[] args) throws IOException {
?? ??? ?TestModel tm1 = new TestModel();
?? ??? ?tm1.setAge(20);
?? ??? ?tm1.setName("小猪熊");
?? ??? ?FileOutputStream fos = new FileOutputStream("D:\\test\\temp.txt");
?? ??? ?ObjectOutputStream oos = new ObjectOutputStream(fos);

?? ??? ?oos.writeObject(tm1);

?? ??? ?oos.close();
?? ??? ?fos.close();
?? ?}

?? 反序列化
??

 ?public static void main(String[] args) throws IOException, ClassNotFoundException {
?? ??? ?FileInputStream fps = new FileInputStream("D:\\test\\temp.txt");
?? ??? ?ObjectInputStream oos = new ObjectInputStream(fps);
?? ??? ?
?? ??? ?Object obj = oos.readObject();
?? ??? ?if(obj instanceof TestModel) {
?? ??? ??? ?TestModel tm = (TestModel) obj;
?? ??? ??? ?System.out.println(tm.getAge()+","+tm.getName());
?? ??? ?}
?? ??? ?
?? ??? ?oos.close();
?? ??? ?fps.close();
?? ?}


package demo211207;

import java.io.Serializable;

public class TestModel implements Serializable{

?? ?/**
?? ? * serialVersionUID序列号/序列ID
?? ? */
?? ?private static final long serialVersionUID = 94406258500902749L;
?? ?private int age;
?? ?private String name;

?? ?public int getAge() {
?? ??? ?return age;
?? ?}

?? ?public void setAge(int age) {
?? ??? ?this.age = age;
?? ?}

?? ?public String getName() {
?? ??? ?return name;
?? ?}

?? ?public void setName(String name) {
?? ??? ?this.name = name;
?? ?}
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章           查看所有文章
加:2021-12-08 13:41:02  更:2021-12-08 13:43:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:00:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码