java文件读写详细介绍

主要针对java中文件的概念以及一些用法

·java中文件读写操作基于流这个概念

流各种方法存在于java.io包中

文件是数据流中最常用的

一.文件的相关方法归类:

创建:File 对象名=new File("文件名");

读取:·File 对象名=new File("文件路径");
     ·File 对象名=new File(父路径,子路径);

以下方法均以 对象名. 引用  //基础方法

1.getName()   返回值:String   //获取文件名

2.canRead()         boolean    //文件是否可读

3.canWrite()        boolean    //文件是否可被写入

4.exits()或isFile() boolean     //判断文件是否存在

5.length()           long          //获取文件的长度(以字节为单位)

6.getAbsolutePath() String    //获取文件的绝对路径

7.getParent()       String    //获取文件的父路径

8.isDirectory()     boolean   //判断文件是否为一个目录

9.isHidden()        boolean   //判断文件是否为隐藏文件

10.lastModified()   long      //获取文件最后修改时间

11.debate()                   //文件删除

二.相关类介绍(输入输出流)

//均以文件对象新建自身对象对文件进行操作,操作完后均要有关闭流的操作,即:对象名.close()

1.FileInputStream与FileOutputStream类

前者以 write()方法写入内容到文件
后者以 read()方法从文件中读取信息

2.FileReader与FileWrite类(对前面两种类的完善)

方法同上消除了很多弊端     //一二两种创建对象以文件对象创建


3.相对应的以上有两种带缓存区域的输入输出流

BufferedInputStream、BufferedOutputStream

BufferedReader、BufferedWrite

使用时先定义相对应的前者对象在创建相应的Buffered对象

例:FileInputStream a=new FileInputStream("文件名");
    BufferedInputStream b=new BufferedInputStream(a);

BufferedReader、BufferedWrite相关方法: //创建对象时是创建FileReader、FileWrite对象同上

read()       //读取单个字符

readLine()   //读取一个文本行 如果未读到则返回null

write()      //写入内容 ·write(String,int,int) 写入字符串某一部分

flush()      //刷新该流缓存

newLine()    //写入一个分隔行

此处举一个明文加密文的写入文件的实例有关于文件写入读取的实例

import java.io.*;
public class Example {
	public static void main(String[] args) {
		char a[] = "今天10点出发".toCharArray();
		int n = 0;
		try {
			File out = new File("word.txt");
			for (int i = 0; i < a.length; i++) {
				a[i] = (char) (a[i] ^ 'R');
			}
			FileWriter fw = new FileWriter(out);
			fw.write(a, 0, a.length);
			fw.close();
			FileReader fr = new FileReader(out);
			char tom[] = new char[10];
			System.out.println("加密后:");
			while ((n = fr.read(tom, 0, 10)) != -1)  //把fr读到tom中去 从0到10位。 
			{
				String s = new String(tom, 0, n);
				System.out.println(s);
			}
			fr.close();
			fr = new FileReader(out);
			System.out.println("明文:");
			while ((n = fr.read(tom, 0, 10)) != -1) {
				for (int j = 0; j < n; j++) {
					tom[j] = (char) (tom[j] ^ 'R');
				}
				String str = new String(tom, 0, n);
				System.out.println(str);
			}
			
			fr.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
}


猜你喜欢

转载自blog.csdn.net/qq_40833779/article/details/80383650