file_java

本文详细介绍了使用Java进行文件操作的方法,包括使用不同类如Scanner、FileInputStream等读取文件内容,利用ObjectInputStream实现对象的读写,通过JFileChooser选择文件进行读写操作,从网络资源读取数据并保存为本地文件,比较不同输入输出流的读写效率,使用DataInputStream进行文件读写,展示文件夹结构以及创建多级目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//1 使用Scanner类解析文件。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.*;

public class Main {


	public static void main(String[] args) throws FileNotFoundException  {
		// TODO Auto-generated method stub
		
		System.setIn(new FileInputStream("e://test.txt"));  
        Scanner reader = new Scanner(System.in);  
          
        while(reader.hasNext())
        {
        	String line = reader.nextLine();  
            System.out.println(line); 
        }
	}
}

//2 利用对象输入/输出流进行文件的读写。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.*;

public class Main {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub

		Student s1 = new Student("1001", "abv", 12);
		Student s2 = new Student("1001", "aqe", 14);
		
		Student[] stuarray = new Student[] {s1, s2};
		ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("e://test.txt"));
		ObjectInputStream is = new ObjectInputStream(new FileInputStream("e://test.txt"));
		os.writeObject(stuarray);
		Object ro = is.readObject();
		Student[] stu = (Student[])ro;
		for(Student s:stu)
		{
			System.out.println(s);
		}
	}
}

class Student implements Serializable {

	private static final long serialVersionUID = 1L;
	String id, name;
	int age;

	public Student(String id, String name, int age) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
	}

}

//3 用打开文本对话框选取文件,读写文件内容。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.*;

import javax.swing.JFileChooser;

public class Main {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub

		JFileChooser ch = new JFileChooser();  
        /*ch.showOpenDialog(null); 
        ch.showSaveDialog(null);*/  
        BufferedReader br;  
        BufferedWriter bw;  
        StringBuffer buffer = new StringBuffer();  
        int result = ch.showOpenDialog(null);  
        if(result == JFileChooser.APPROVE_OPTION)  
        {  
            File file = ch.getSelectedFile();  
            br = new BufferedReader(new FileReader(file));  
            String line;  
            while((line = br.readLine())!=null)  
            {  
                buffer.append(line);  
            }  
            System.out.println(buffer);  
            br.close();  
        }  
          
        result = ch.showSaveDialog(null);  
        if(result == JFileChooser.APPROVE_OPTION)  
        {  
            File file = ch.getSelectedFile();  
            bw = new BufferedWriter(new FileWriter(file));  
            bw.write(buffer.toString());  
            bw.flush();  
            bw.close();  
        }  
	}
}

//4 读取网络资源,写出代码至文件。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.net.URL;
import java.util.*;

import javax.swing.JFileChooser;

public class Main {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub
		
		URL url = new URL("http://www.sdut.edu.cn");
		InputStream is = url.openStream();
		OutputStream os = new FileOutputStream("sdut.html");
		byte[] bytes = new byte[100];
		int len;
		while ((len = is.read(bytes)) != -1) {
			os.write(bytes, 0, len);
		}
		is.close();
		os.close();
	}
}

//5 利用各种输入输出流进行读写文件,分析其读写效率。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.net.URL;
import java.util.*;

import javax.swing.JFileChooser;

public class Main {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub
		
		 InputStream is=new FileInputStream("d:\\test1.txt");
		   OutputStream os=new FileOutputStream("d:\\test2.txt");
		   
		   long l1=System.currentTimeMillis();
		   byte[] bytes=new byte[10];
		   int len;
		   while((len=is.read(bytes))!=-1)
		   {
		    os.write(bytes,0,len);
		    System.out.println(new String(bytes,0,len));
		   }
		  
		   is.close();
		   os.close();
		  
		   long l2=System.currentTimeMillis();
		   System.out.println(l2-l1);        //FileInputStream,FileOutputStream 
		  
		   BufferedInputStream bis=new BufferedInputStream(new FileInputStream("e:\\test1.txt")); 
		   BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("e:\\test2.txt"));
		  
		   l1=System.currentTimeMillis();
		   while((len=bis.read(bytes))!=-1)  
		   {
		    bos.write(bytes,0,len);           
		    System.out.println(new String(bytes,0,len));
		   }
		   bis.close();   
		   bos.close();   
		   l2=System.currentTimeMillis();
		   System.out.println(l2-l1);         //BufferedInputStream,BufferedOutputStream 
		   
		   DataInputStream dis=new DataInputStream(new FileInputStream("e:\\test1.txt"));
		   DataOutputStream dos=new DataOutputStream(new FileOutputStream("e:\\test2.txt"));
		   
		   l1=System.currentTimeMillis();
		   while((len=dis.read(bytes))!=-1)  
		   {
		    dos.write(bytes,0,len);           
		    System.out.println(new String(bytes,0,len));
		   }
		   dis.close();   
		   dos.close();   
		   l2=System.currentTimeMillis();
		   System.out.println(l2-l1);          //DataInputStream,DataOutputStream  
		   
		   Reader ir=new FileReader("e:\\test1.txt");
		   Writer wr=new FileWriter("e:\\test2.txt");
		 
		   l1=System.currentTimeMillis();
		   char[] chars=new char[10];
		  
		   while((len=ir.read(chars))!=-1)
		   {
		    wr.write(chars,0,len);
		    String str=new String(chars,0,len);
		    System.out.println(str);
		   }
		  
		   ir.close();
		   wr.close();
		  
		   l2=System.currentTimeMillis();
		   System.out.println(l2-l1);            //FileReader,FileWriter 
		   
		   Reader br=new BufferedReader(new FileReader("e:\\test1.txt"));
		   Writer bw=new BufferedWriter(new FileWriter("e:\\test2.txt"));
		 
		   l1=System.currentTimeMillis();
		  
		   while((len=br.read(chars))!=-1)
		   {
		    bw.write(chars,0,len);
		    String str=new String(chars,0,len);
		    System.out.println(str);
		   }
		  
		   ir.close();
		   wr.close();
		  
		   l2=System.currentTimeMillis();
		   System.out.println(l2-l1);            //BufferedReader,BufferedWriter
	}
}

//6 利用DataInputStream和DataOutputStream读写文件。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.net.URL;
import java.util.*;

import javax.swing.JFileChooser;

public class Main {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub
		
		OutputStream os = new FileOutputStream("e:/test.txt");
		InputStream in = new FileInputStream("e:/test.txt");
		DataOutputStream du = new DataOutputStream(os);
		DataInputStream di = new DataInputStream(in);
		//du.writeByte(’1’);
		for(int i = 1; i<=100; i++)
		{
		du.writeInt(i);
		}
		char a = 'A';
		for(int i = 1; i <= 26; i++)
		{
		du.writeChar(a);
		a++;
		}
		char b = 'a';
		for(int i = 1; i <= 26; i++)
		{
		du.writeChar(b);
		b++;
		} 
		for(int i = 1; i <=100; i++)
		{
		int j = di.readInt();
		System.out.println(j);
		}
		for(int i = 1; i <= 52; i++)
		{
		char j = di.readChar();
		System.out.println(j);
		} 
		di.close();
		du.close();
		os.close();
		in.close();
	}
}

//7 利用File类进行文件及文件夹名称的显示。
import java.io.File;
import java.io.FilenameFilter;
public class test2 {

	public static void main(String[] args) {
		
		File f = new File("d:\\test");
		file_open(f);
		
		System.out.println("============================");
		String[] lfn = f.list(new FilenameFilter() {
			
			@Override
			public boolean accept(File dir, String name) {
				// TODO Auto-generated method stub
				if(name.endsWith(".txt"))
				{
					return true;
				}
				return false;
			}
		});
		for(String fff:lfn)
		{
			System.out.println(fff);
		}
		
	}

	public static void file_open(File f)
	{
		if(f!=null)
		{
			File[] lf = f.listFiles();
			if(lf!=null)
			{
				for(File fff:lf)
				{
					if(fff.isDirectory())
					{
						System.out.println("Directory:"+fff);
						file_open(fff);
					}
					else
					{
						System.out.println("File:"+fff);
					}
				}
			}
		}
	}
}

//8 使用File类创建一个多层目录d:\java\ch10\src。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.net.URL;
import java.util.*;

import javax.swing.JFileChooser;

public class Main {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub

		File file = new File("d:\\java\\ch10\\src");
		if (!file.exists()) {
			file.mkdirs();
		} else {
			file.delete();
		}
	}
}

//9 使用File类列出某一个目录下创建日期晚于2017-08-10的文件。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;

import javax.swing.JFileChooser;

public class Main {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub

		Scanner reader = new Scanner(System.in);
		String str = reader.nextLine();
		String ss = "2017-08-10 00:00:00";
		File file = new File(str);
		File[] list = file.listFiles();
		for (int i = 0; i < list.length; i++) {
			long st = list[i].lastModified();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

			String sd = sdf.format(new Date(Long.parseLong(String.valueOf(st))));
			if (ss.compareTo(sd) <= 0) {
				System.out.println(list[i] + sd);
			}
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值