Java输入输出(IO、文件操作、大量实例)

java 文件操作基础实验大集合

目录:

实验50:FileInputStream类的应用

实验51:FileOutputStream类应用

实验52:FileReader类的应用

实验53:FileWriter类的应用

实验54:文件操作 (模版程序)

    (1) 学习File类的使用:新建文件夹程序

    (2) 学习在程序中新建文件:写入文件程序

    (3) 学习在程序中向文件写入内容:读取文件程序

    (4) 学习在程序中读取文件内容:获取文件信息程序

    (5) 学习在程序中查看目录内容:查看目录内容程序

    (6) 学习在程序中删除文件:删除文件程序

实验55:读写基本类型数据

实验56:对象的写入与读取

实验57:对文件的随机访问


实验50:FileInputStream类的应用

编写一个Java程序,在main()中生成FileInputStream的一个实例,使它能打开文件myfile.txt ,并能够把文件的内容显示在屏幕上

import java.io.*;
public class App_50 {
	public static void main(String[] args)throws IOException{
			int i;
			FileInputStream fin; // 注意:该类不能处理中文编码
			fin = new FileInputStream("myfile.txt"); // 文件名
			do{
				i = fin.read();
				if( i != -1){
					System.out.print((char)i);	
				}
			}while(i != -1); // 读到文件的末尾返回值为-1
			fin.close();
	}	
}

实验51:FileOutputStream类应用

编写一个java程序,把文件myfile.txt中的内容复制到文件yourfile.txt文件中

import java.io.*;
public class App_51{
	public static void main(String[] args)throws IOException{
		int i;
		FileInputStream fin;
		FileOutputStream fout;
		fin = new FileInputStream("myfile.txt");    // 创建一个FileInputStream对象,从myfile.txt中读取信息
		fout = new FileOutputStream("yourname.txt");
		do{
			i = fin.read();       // 读入一个字节的二进制数据
			if(i != -1){          // 将i的地位字节写入到输出流
				fout.write(i);
			}
		}while(i != -1);              // 若输入流当前位置没有数据返回-1
		fin.close();
		fout.close();
		System.out.print("已经复制");
	}
} 

实验52:FileReader类的应用

编写一个java程序,读出文件myfile.txt的内容并把它们显示到屏幕上

import java.io.*;
public class App_52{
	public static void main(String[] args)throws IOException{
		char[] c = new char[500]; // 设置一个足够大的数组
		FileReader fr = new FileReader("myfile.txt");
		int num = fr.read(c); // 读取文件里的内容到数组里,并返回读取的长度
		String str = new String(c, 0, num);
		System.out.println("读取的字符个数为: " + num + ",其内容如下:");
		System.out.println(str);
	}	
}

实验53:FileWriter类的应用

编写一个java程序,将字符串写入到文件中

import java.io.*;
public class App_53{
	public static void main(String[] args) throws IOException{
		FileWriter fw = new FileWriter("test.txt"); // 可以自动创建
		String str1 = "广大的编程爱好者,你好\r\n";
		String str2 = "欢迎使用java";
		fw.write(str1);
		fw.write(str2);
		fw.close();
		System.out.println("已经将文件写入到文件test.txt中");
	}
}

实验54:文件操作 (模版程序)

 (1) 学习File类的使用:新建文件夹程序,带参执行

import java.io.*;
public class File1{
	public static void main(String[] args) throws IOException { 
		// 这里需要带参执行程序,  参数为需要创建的一个或多个文件名
		if(args.length == 0){
			System.out.println("没有需要创建的文件");
			System.exit(1);
		}	
		for(int i=0; i<args.length; i++)
			new File(args[i]).createNewFile();	
	}	
}

 (2) 学习在程序中新建文件:写入文件程序

import java.io.*;
public class File2{
	public static void main(String[] args) throws IOException {
		BufferedWriter out = new BufferedWriter(new FileWriter("a.txt")); // 创建缓存区字符输出流,需要传入Write对象
		out.write("广东金融学院");
		out.newLine();
		out.write("i love java i use java");
		out.flush();
		out.close();
	}	
}

(3) 学习在程序中向文件写入内容:读取文件程序

import java.io.*;

public class File3{
	public static void main(String[] args)throws IOException{
		String thisLine;
		BufferedReader in = new BufferedReader(new FileReader("a.txt")); // 创建缓存区字符输入流,需要传如Reader对象
		while((thisLine = in.readLine()) != null)    // 每次读取一行,直到文件结束
			System.out.println(thisLine);
		in.close();
	}
}

(4) 学习在程序中读取文件内容:获取文件信息程序

 import java.io.*;
import java.util.*;
public class File4{
	public static void status(String fileName) throws IOException{
		System.out.println("------"+fileName+"------");
		File f = new File(fileName);   // 创建 File 类对象
		if(!f.exists()){               // 测试文件是否存在
			System.out.println("文件没收找到"+"\n");
			return;
		}
		System.out.println("文件全名为:"+f.getCanonicalPath());
		String p = f.getParent();
		if(p!=null){
			System.out.println("Parent directory: "+p); // 显示文件的父目录
		}
		if(f.canRead()){
			System.out.println("File is readable.");    // 测试文件是否可读
		}
		if(f.canWrite()){                                   // 测试文件是否可写
			System.out.println("File is writable.");
		}
		Date d = new Date();
		d.setTime(f.lastModified());
		System.out.println("Last modifiled : " + d);
		if(f.isFile()){
			System.out.println("文件大小是: "+f.length()+"bytes");		
		}else if(f.isDirectory()){
			System.out.println("它是目录");
		}else{
			System.out.println("既不是文件也不是目录");	
		}
		System.out.println();
	}
	public static void main(String[] args){
		if(args.length == 0){
			System.out.println("缺少文件名");
			System.exit(1);
		}
		for(int i=0; i<args.length; i++){
			try{status(args[i]);}
			catch(Exception e){ System.out.println(e); }	
		}
	}
}

(5) 学习在程序中查看目录内容:查看目录内容程序

import java.io.*;
public class File5{
	public static void main(String[] args){
		String[] dir = new java.io.File("C:\\.").list(); // 查看C盘目录内容,查看当前目录直接用"."
		java.util.Arrays.sort(dir);
		for(int i=0; i<dir.length; i++){
			System.out.println(dir[i]);
		}
		File[] drives = File.listRoots(); // 查看系统驱动器列表
		for(int i=0; i<drives.length; i++){
			System.out.println(drives[i]);
		}
	}
}

(6) 学习在程序中删除文件:删除文件程序

import java.io.*;
public class File6{
	public static void main(String[] args){
		File target = new File("a.txt"); // 删除当前目录下的 a.txt 文件
		if(!target.exists())
			System.out.println("文件不存在");
		else{
			if(target.delete()){
				System.out.println("文件被删除");
			}else{
				System.out.println("文件不能删除");
			}
		}
	}
}

实验55:读写基本类型数据

编写一个java程序,在当前文件夹下新建一个文件baseDate.txt,往该文件中写入一些基本类型的数据,再从该文件中读取这些数据并显示.

import java.io.*;
public class BaseDate {
	public static void main(String[] args) {
		FileOutputStream fout;
		DataOutputStream dout;
		FileInputStream fin;
		DataInputStream din;
		try {
			fout = new FileOutputStream("d:\\temp"); // 为了方便查看,创建在了d盘跟目录下
			dout = new DataOutputStream(fout);
			dout.writeInt(10);                       // 将int型数据写入文件中
			dout.writeLong(1234567894);              // 将Long类型数据写入
			dout.writeFloat(3.1415926f);             // Float
			dout.writeDouble(5659595.4484);          // Double
			dout.writeBoolean(true);                 // boolean
			dout.writeChars("Goodbye!");             // 写入字符串
		} catch (IOException e) { }
		
		try {
			fin = new FileInputStream("d:\\temp");
			din = new DataInputStream(fin);
			System.out.println(din.readInt());       // 从文件中读取数据到程序中
			System.out.println(din.readLong());
			System.out.println(din.readFloat());
			System.out.println(din.readDouble());
			System.out.println(din.readBoolean());
			char ch;
			while((ch=din.readChar())!='\0') { // 单个字符单个字符读取,直到末尾
				System.out.print(ch);
			}
			din.close();
		} catch (FileNotFoundException e) { 
			System.out.println("文件未找到!");
		} catch(IOException e) {
			
		}
	}
}

实验56:对象的写入与读取

编写一个java程序,在当前文件夹下新建一个文件ReadWriteObject.txt,往该文件中写入两个学生对象信息,再从该文件中读取这两个学生对象信息并显示

import java.io.*;

class Student implements Serializable{ // 必须对该类序列化,即实现Serializable接口
	String name;
	int age;
	String dept;
	public Student(String newName, int newAge, String newDept){
		name = newName;
		age = newAge;
		dept = newDept;
	}
	public String toString(){
		return name + " " + age + " " + dept;	
	}
}
public class ReadWriteObject{
	public static void main(String[] args){
		Student w1 = new Student("张三", 20, "计算机系");
		Student w2 = new Student("李四", 21, "金融系");
		FileOutputStream fout;
		ObjectOutputStream dout;
		FileInputStream fin;
		ObjectInputStream din;
		File f = new File("ReadWriteObject.txt");
		try{
			f.createNewFile();
		}catch(IOException e){
			System.out.println(e);		
		}
		try{
			fout = new FileOutputStream(f); 
			dout = new ObjectOutputStream(fout); // 创建一个ObjectOutputStream对象
			dout.writeObject(w1);                // 写入序列化对象
			dout.writeObject(w2);
			dout.close();
		}catch(IOException e){
			System.out.println(e);
		}
		try{
			fin = new FileInputStream(f);
			din = new ObjectInputStream(fin);    // 创建ObjectInputStream对象
			Student r1 = (Student)din.readObject(); // 从文件中读取序列化对象
			Student r2 = (Student)din.readObject();
			System.out.println(r1);
			System.out.println(r2);
			din.close();
		}catch(IOException e){
			System.out.println(e);
		}catch(Exception e){
			System.out.println(e);
		}
	}
}

实验57:对文件的随机访问

编写一个java程序,在当前文件夹下新建一个文件RandomFIle.txt,向该文件中写入“abcdefghijklmnopqrstuvwxyz”,提示用户从键盘输入一个0~25之间的整数对象,根据用户输入的整数,从文件中读取相应的字符并显示。

import java.util.Scanner;
import java.io.*;
public class MyRandom{
	public static void main(String[] args){
		File f = new File("RandomFile.txt");
		// 新建RandomFile文件
		try{
			f.createNewFile();			
		}catch(IOException e){
			System.out.println(e);
		}
		String str = "abcdefghijklmnopqrstuvwxyz";
		// 往文件中写入信息
		try{
			FileWriter fw = new FileWriter(f);
			fw.write(str);
			fw.close();
		}catch(IOException e){
			System.out.println(e);
		}
		// 从键盘输入0~25的整数
		int a = -1;
		Scanner sc = new Scanner(System.in);
		while(a<0 | a>25){
			System.out.println("从键盘输入一个0-25的整数:");
			a = sc.nextInt();
		}
		// 随机访问文件中的字符
		try{
			RandomAccessFile inFile = new RandomAccessFile("RandomFile.txt", "r");
			inFile.seek(a); 				// 将文件指针移动到整数a的位置
			char c = (char)inFile.read();	// 在inFile中读取一个字符
			inFile.close();
			System.out.println("RandomFile.txt文件中第"+a+"个字符是"+c);
		}catch(IOException e){
			System.out.println(e);
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值