一、
在电脑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();
}
}
}