JAVA day13:代码作业(File)

一、

在电脑D盘下创建一个文件为HelloWorld.txt文件,判断他是文件还是目录,在创建一个目录IOTest,之后将HelloWorld.txt移动到IOTest目录下去;之后遍历IOTest这个目录下的文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test01 {
	public static void main(String[] args) throws IOException {
		//在电脑D盘下创建一个文件为HelloWorld.txt文件
		File f1=new File("D:\\HelloWorld.txt");
		if(!f1.exists()){
			f1.createNewFile();
		}
		//判断他是文件还是目录
		if(f1.isFile()){
			System.out.println("HelloWorld.txt是文件");
		}else if(f1.isDirectory()){
			System.out.println("HelloWorld.txt是目录");
		}else{
			System.out.println("HelloWorld.txt不是目录或者文件");
		}
		//创建一个目录IOTest
		File f2=new File("D:\\IOTest");
		if(!f2.exists()){
			f2.mkdir();
		}
		//之后将HelloWorld.txt移动到IOTest目录下去
        //移动方法一=先复制再删除
		/*File f3=new File("D:\\IOTest\\"+f1.getName());
		if(!f3.exists()){
			f3.createNewFile();
		}
		FileOutputStream fos = new FileOutputStream(f3);
		FileInputStream fis = new FileInputStream(f1);
		byte[] cache=new byte[1024];
		int i=0;
		while((i=fis.read(cache))!=-1){
			fos.write(cache,0,i);
		}
		f1.delete();
		fos.close();
		fis.close();*/
		//或者移动方法二:
		System.out.println(f2.getParent()+f2.getName()+"\\"+f1.getName());
		File f3=new File(f2.getParent()+f2.getName()+"\\"+f1.getName());
		f1.renameTo(f3);
		//之后遍历IOTest这个目录下的文件
		int temp=0;
		String[] strs=f2.list();
		for (int i = 0; i < strs.length; i++) {
			System.out.println(strs[i]);
		}
	}
}

二、

统计一个文件中各个字母出现次数,包括字符出现次数

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class Test02 {

	public static void main(String[] args) throws IOException {
		//统计一个文件中各个字母出现次数,包括字符出现次数
		File f1=new File("D:\\HelloWorld.txt");
		if(!f1.exists()){
			f1.createNewFile();
		}
		//写入一句话
		FileOutputStream fos=new FileOutputStream(f1);
		byte[] a = "AAbbCCccccccdddDDDDd".getBytes();
        fos.write(a);
		//储存字母字符,次数
		Map<String,Integer> ziMu=new HashMap<String,Integer>();
		int i=0;
		String str="";
		//遍历文件中的字母
		FileInputStream fis=new FileInputStream(f1);
		while((i=fis.read())!=-1){
			str=String.valueOf((char)i);
			boolean is=false;
			//对每个字符在Map中查找,有的value++;没有新建key,1
			Set<Entry<String,Integer>> ens=ziMu.entrySet();//通过entrySet()方法获得Entry对象集合
			for(Entry<String,Integer> en:ens){
				if(str.equals(en.getKey())){
					en.setValue(en.getValue()+1);
					is=true;
				}
			}
			if(!is){
				ziMu.put(str,1);
			}
		}
		//输出字符和对应的出现次数
		System.out.println(ziMu.toString());
        fos.close();
		fis.close();
	}
}

三、

将一个文本文件内容倒置读出

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class Test03 {

	public static void main(String[] args) throws IOException {
		//新建文件夹
		File f1=new File("D:\\HelloWorld.txt");
		if(!f1.exists()){
			f1.createNewFile();
		}
		//写入一句话
		FileOutputStream fos=new FileOutputStream(f1);
		byte[] a = "AAbbCCccccccdddDDDDd".getBytes();
        fos.write(a);
		//遍历文件中的内容
		int i=0;
		String str="";
		FileInputStream fis=new FileInputStream(f1);
		while((i=fis.read())!=-1){
			str+=(char)i;
		}
		String strRev="";
		for(int j = str.length()-1;j>=0;j--){
			strRev+=str.substring(j,j+1);
		}
		System.out.println(strRev);
        fos.close();
		fis.close();
	}
}

四、

模拟用户登陆,控制台输入用户名和密码,将用户名密码存储到文件中,并随时可以查询所有用户名及密码,在模拟用户登录,读取文件用户名和密码

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import java.util.Scanner;

public class Test04 {

	public static void main(String[] args) throws IOException {
		boolean isRun=true;
		while(isRun){
			Scanner sc=new Scanner(System.in);
			System.out.println("请输入功能:(1注册    2登录   3退出)");
			int xuan=sc.nextInt();
			switch (xuan) {
			case 1:
				//模拟用户登陆
				//控制台输入用户名和密码
				System.out.println("*****注册*****");
				System.out.println("请输入用户名:");
				String name=sc.next();
				System.out.println("请输入密码:");
				String password=sc.next();
				//将用户名密码存储到文件中,并随时可以查询所有用户名及密码,
				File f1=new File("D:\\HelloWorld.txt");
				if(!f1.exists()){
					f1.createNewFile();
				}
				//写入
				FileOutputStream fos=new FileOutputStream(f1,true);//不覆盖的写入
				byte[] a = (name+"\n").getBytes();
				byte[] b = (password+"\n").getBytes();
		        fos.write(a);
		        fos.write(b);
		        System.out.println("注册成功");
		        fos.close();
				break;
			case 2:
				//再模拟用户登录,读取文件用户名和密码
				System.out.println("*****登录*****");
				System.out.println("请输入用户名:");
				String name2=sc.next();
				System.out.println("请输入密码:");
				String password2=sc.next();
		        //遍历文件中的内容
				int i=0;
				String str="";
				File f2=new File("D:\\HelloWorld.txt");
				FileInputStream fis=new FileInputStream(f2);
				while((i=fis.read())!=-1){
					str+=(char)i;
				}
				String[] strs=str.split("\n");
				boolean isJ=false;
				for(int j=0;j<strs.length;j=j+2){
					if(strs[j].equals(name2)){
						if(strs[j+1].equals(password2)){
							System.out.println("登陆成功");
						}else{
							System.out.println("密码错误");
						}
						isJ=true;
					}
				}
				if(!isJ){
					System.out.println("用户名不存在");
				}
				fis.close();
				break;
			case 3:
				isRun=false;
				System.out.println("退出成功");
				break;
			default:
				System.out.println("您输入的数字有问题,请重新输入!");
				break;
			}
		}
	}
}

 五、

从控制台输入一个文件名,判断所在文件夹是否存在该文件,如果不存在,则创建该文件,如果存在,创建一个copy_文件名的文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Test05 {
	
	public static void main(String[] args) throws IOException {
		//从控制台输入一个文件名
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入文件名:(D:\\IOTest)里的");
		String str=sc.next();
		//判断所在文件夹是否存在该文件,如果不存在,则创建该文件,
		File f=new File("D:\\IOTest\\"+str);
		if(!f.exists()){
			f.createNewFile();
			System.out.println("不存在,已创建");
		}else{
			//如果存在,创建一个copy_文件名的文件
			File f2 = new File("D:\\IOTest\\copy_"+str);
			FileOutputStream fos = new FileOutputStream(f2);
			FileInputStream fis = new FileInputStream(f);
			byte[] cache=new byte[1024];//1KB数组用来存文件
			int i=0;
			while((i=fis.read(cache))!=-1){
				fos.write(cache,0,i);
			}
			System.out.println("存在,已拷贝");
			fos.close();
			fis.close();
		}
	}
}

 六、

在当前目录下创建一个文件“test.txt”,并向文件输出“Hello World”,如果文件已存在,则在原有文件内容后面追加。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import java.util.Scanner;

public class Test06 {

	public static void main(String[] args) throws IOException {
		/*在当前目录下创建一个文件“test.txt”,并向文件输出“Hello World”,如果文件已存在,则在原有文件内容后面追加。*/
		File f1 = new File(".\\test.txt");//\\path1\\a.txt
		if(!f1.exists()){
		     f1.createNewFile();
		     FileOutputStream fos = new FileOutputStream(f1);
		     byte[] a = "Hello World".getBytes();
		     fos.write(a);
		     System.out.println("文件路径为:"+f1.getAbsolutePath());
		     fos.close();
		}else{
			FileOutputStream fos = new FileOutputStream(f1,true);
			byte[] a = "Hello World".getBytes();
	        fos.write(a);
	        System.out.println("追加成功");
			fos.close();
		}
	}
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值