Java-IO流实验

目录
  • 前言
  • 一、资源管理器
    • [1]. 题目
    • [2]. 实例
    • [3]. 代码
  • 二、文件复制与剪切
    • [1]. 题目
    • [2]. 复制
    • [3]. 剪切
    • [4]. 代码
  • 三、文件数据读写
    • [1]. 题目
    • [2]. 实例
    • [3]. 代码
  • 总结

前言

项目结构如下,在使用代码的时候注意修改成你自己的包名和类名

一、资源管理器

[1]. 题目

设计一个用于显示指定目录下所有文件与文件夹的资源管理器类,要求包括:

  • 从命令行输入一个路径,如果不是目录,则输出提示信息
  • 如果是目录且存在,则显示该目录下,所有的文件与文件夹的名称
  • 如果不存在,则输出不存在该目录

[2]. 实例

[3]. 代码

package p1;
import java.util.*;
import java.io.*;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入路径:");
		String path = scanner.next();
		File file = new File(path);
		if(file.isDirectory()) {//类型为目录时
			if(!file.exists()) {//目录不存在时
				System.out.println("该路径不存在!");
			}else {
				System.out.println("该文件夹下的路径如下:");
				String[] sub = file.list();//获取文件夹下的所有文件、文件夹
				for(String i:sub) {//输出
					System.out.println(i);
				}
			}
		}else {//不为目录时
			System.out.println("该路径不为目录!");
		}
	}
}

二、文件复制与剪切

[1]. 题目

编写一个文件操作类(FileOperation),具有复制和剪切两个方法,要求:

  • 源路径和目标路径由控制台输入
  • 使用静态方法

[2]. 复制

[3]. 剪切

[4]. 代码

package p2;
import java.util.*;
import java.io.*;
public class Main {
	public static void main(String[] args)  throws Exception{
		Scanner scanner = new Scanner(System.in);
		System.out.println("1. 复制");
		System.out.println("2. 剪切");
		System.out.println("请选择: ");
		int choose = scanner.nextInt();
		System.out.println("源路径: ");
		String resource = scanner.next();
		System.out.println("目标路径: ");
		String target = scanner.next();
		if(choose==1) {//复制
			FileOperation.copy(resource,target);
		}else {//剪切
			FileOperation.cut(resource, target);
		}
		System.out.println("执行完毕");
	}
}
class FileOperation{//文件操作类
	public static void copy(String resource,String target)  throws Exception{//复制文件
		//文件流对象
		File file_resource = new File(resource);//源文件
		File file_target = new File(target);//目标文件
		//文件输入输出流对象
		FileInputStream fis = new FileInputStream(file_resource);//输入流,写入数据
		FileOutputStream fos = new FileOutputStream(file_target);//输出流,读取数据
		//读取文件数据
		byte[] buff_resource = new byte[(int) file_resource.length()];
		fis.read(buff_resource);//读取文件数据
		//写入文件数据
		String str = new String(buff_resource);
		byte[] buff_target = str.getBytes();
		fos.write(buff_target);//写入文件数据
		//关闭文件流
		fis.close();
		fos.close();
	}
	public static void cut(String resource,String target)  throws Exception{//剪切文件
		//文件流对象
		//File file_delete = new File(resource);//源文件
		File file_resource = new File(resource);//源文件
		File file_target = new File(target);//目标文件
		//文件输入输出流对象
		FileInputStream fis = new FileInputStream(file_resource);//输入流,读取数据
		FileOutputStream fos = new FileOutputStream(file_target);//输出流,写入数据
		//读取文件数据
		byte[] buff_resource = new byte[(int) file_resource.length()];
		fis.read(buff_resource);//读取文件数据
		//写入文件数据
		String str = new String(buff_resource);
		byte[] buff_target = str.getBytes();
		fos.write(buff_target);//写入文件数据
		//关闭文件流
		fis.close();
		fos.close();
		//删除源文件,必须先关闭fis文件流后才能成功删除文件
		file_resource.delete();
	}
}

三、文件数据读写

[1]. 题目

将“2018 FIFA World Cup will play in Russia.”写入到D:\data.txt文件中,然后再从该文件中读取所有内容,并显示在控制台上。

[2]. 实例

[3]. 代码

package p3;
import java.io.*;
public class Main {
	public static void main(String[] args) throws IOException{
		String str = "2018 FIFA World Cup will play in Russia.";
		Write("D:\\data.txt",str);
		System.out.println(Read("D:\\data.txt"));
	}
	public static String Read(String filename) throws IOException{//文件读取
		File file = new File(filename);
		FileInputStream fis = new FileInputStream(file);//输入流,读取数据
		byte[] buff = new byte[(int) file.length()];
		fis.read(buff);//读取文件
		String str = new String(buff);
		fis.close();
		return str;
	}
	public static void Write(String filename,String str) throws IOException{//文件写入
		File file = new File(filename);
		FileOutputStream fos = new FileOutputStream(file);//输出流,写入数据
		byte[] buff = str.getBytes();
		fos.write(buff);//写入文件
		fos.close();
	}
}

总结

本篇文章就到这里了,希望能给您带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java字节流和字符流及IO流的总结

    从接收输入值说起 在日常的开发应用中,有时候需要直接接收外部设备如键盘等的输入值,而对于这种数据的接收方式,我们一般有三种方法:字节流读取,字符流读取,Scanner 工具类读取. 字节流读取 直接看一个例子: public class Demo01SystemIn { public static void main(String[] args) throws IOException { int a = System.in.read(); System.out.println(a); char

  • Java IO流之节点流与字符流的相关知识总结

    一.File file是文件和目录路径名的抽象表示 1.1 File的用法 用法: File file = new File("路径名"); //如 File file = new File("L:\\FileTestDemo\\AAA\\aaa.txt"); 注意:在windows中,路径名不能使用单个的\,单个的\为转义字符,可以使用\\,//或/ 1.2 File的常用方法 1.boolean createNewFile() 当且仅当具有此名称的文件尚不存在时

  • Java IO流学习总结之文件传输基础

    一.Java IO流总览 二.File类 2.1 常用API package pkg1; import java.io.File; import java.io.IOException; /** * @author Administrator * @date 2021/4/2 */ public class FileDemo { public static void main(String[] args) { // 了解构造函数,可查看API File file = new File("d:\\

  • java基础入门之IO流

    目录 io学习框架: 文件: Io流的原理: 节点流和处理流: BufferWriter: 处理字节的处理流: 标准输入和输出: 转换流: 打印流: Properties类: 总结 io学习框架: 文件: 保存数据的地方. 1)常见文件对象的相关构造器和方法: 当进行File file = new File(filePath);只是在内存上有一个文件对象: 只有file.createNewFile();才会在磁盘创建文件 获取文件的相关信息: utf8中,一个汉字是三个字节,所以当用字节流的re

  • Java集合和IO流实现水果摊项目

    前言 前一段时间利用Java基础知识集合和IO流做了个简单的小项目-水果摊,感觉不过瘾,最近又想着用GUI和Mysql数据库重做一下,名为另一个水果摊,下面就来分享一下代码吧 一.包和表截图 二.源代码 1.JDBC连接Mysql数据 管理员界面:增删查改 package com.vector.service; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; imp

  • java IO流文件的读写具体实例

    引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能找到,但自己总感觉不是很踏实,所以今天就抽空看了看java IO流的一些操作,感觉还是很有收获的,顺便总结些资料,方便以后进一步的学习... IO流的分类:1.根据流的数据对象来分:高端流:所有的内存中的流都是高端流,比如:InputStreamReader  低端流:所有的外界设备中的流都是低端流

  • Java IO流 文件的编码实例代码

    •文件的编码 package cn.test; import java.io.UnsupportedEncodingException; public class Demo15 { public static void main(String[] args) throws UnsupportedEncodingException { String str = "你好ABC123"; byte[] b1 = str.getBytes();//转换成字节系列用的是项目默认的编码 for (

  • 【Java IO流】字节流和字符流的实例讲解

    字节流和字符流 对于文件必然有读和写的操作,读和写就对应了输入和输出流,流又分成字节和字符流. 1.从对文件的操作来讲,有读和写的操作--也就是输入和输出. 2.从流的流向来讲,有输入和输出之分. 3.从流的内容来讲,有字节和字符之分. 这篇文章先后讲解IO流中的字节流和字符流的输入和输出操作. 一.字节流 1)输入和输出流 首先,字节流要进行读和写,也就是输入和输出,所以它有两个抽象的父类InputStream.OutputStream. InputStream抽象了应用程序读取数据的方式,即

  • Java IO流对象的序列化和反序列化实例详解

    Java-IO流 对象的序列化和反序列化 序列化的基本操作 1.对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化. 2.序列化流(ObjectOutputStream),writeObject 方法用于将对象写入输出流中: 反序列化流(ObjectInputStream),readObject 方法用于从输入流中读取对象. 3.序列化接口(Serializeable) 对象必须实现序列化接口,才能进行序列化,否则会出现异常.这个接口没有任何方法,只是一个标准. packag

  • java IO流 之 输入流 InputString()的使用

    本文主要给大家介绍java的InputStream 流的使用. (1)FileInputstream: 子类,读取数据的通道 使用步骤: 1.获取目标文件:new File() 2.建立通道:new FileInputString() 3.读取数据:read() 4.释放资源:close() //一些默认要导入的包 import java.io.File; import java.io.FileInputStream; import java.io.IOException; public sta

  • Java IO流 File类的常用API实例

    •File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOException; public class Demo16 { public static void main(String[] args) { File file = new File("F:\\javaio"); //文件(目录)是否存在 if(!file.exists()) { /

  • Java IO流体系继承结构图_动力节点Java学院整理

    Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系 2. 原始处理器(适配器)与链接流处理器(装饰器) 其结构图如下: Reader-Writer体系 1. 基类 InputStream与OutputStream是所有字节型输入输出流的基抽象类,同时也是适配器(原始流处理器)需要适配的对象,也是装饰器(链接流处

  • java IO流读取图片供前台显示代码分享

    最近项目中需要用到IO流来读取图片以提供前台页面展示,由于以前一直是用url路径的方式进行图片展示,一听说要项目要用IO流读取图片感觉好复杂一样,但任务下达下来了,做为程序员只有选择去执行喽,于是找了点资料看了会api, 嘿感觉挺简单的,由于是第一次采用IO流的方式进行读取图片供页面显示,所以把以下代码记录一下 后台代码: /** * IO流读取图片 by:long * @return */ @RequestMapping(value = "/IoReadImage/{imgName}"

  • java IO流将一个文件拆分为多个子文件代码示例

    文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位,对文件进行分割或合并. 看下基本思路: 如果有一个大文件,指定分割大小后(比如:按1M切割) step 1: 先根据原始文件大小.分割大小,算出最终分割的小文件数N step 2: 在磁盘上创建这N个小文件 step 3: 开多个线程(线程数=分割文件数),每个线程里,利用RandomAccessF

  • Java IO流相关知识代码解析

    一.IO流的分类 字符流 Reader InputStreamReader(节点流) BufferedReader(处理流) Writer OutputStreamWriter(节点流) BufferedWriter(处理流) PrintWriter 字节流 InputStream FileInputStream(节点流) BufferedInputStream(处理流) ObjectInputStream(处理流) PrintStream OutputStream FileOutputStre

随机推荐