java2实用教程 第十章 输入输出流

IO流
该图来自牛客网评论
该图来自牛客网
File对象
构造方法
File(String filename)
File(String derectoryPath,String filename);
File(File dir,String filename)

package fix_error;
import java.io.*;
public class test {
	public static void main (String args[]) {
		File f= new File("ddd.txt") ;
		System. out. println(f.getName() +"是可读的吗:"+f.canRead()) ;
		System. out.println(f.getName() +"的长度:"+f.length()) ;
		System. out.println(f.getName () +"的绝对路径:"+f.getAbsolutePath());
		File file = new File("new.txt") ;
		System.out.println("在当前目录下创建新文件"+file. getName());
		if(!file.exists()) {
			try { //创建文件
				file.createNewFile() ;
				//删除文件 file.delete();
				System.out.println("创建成功") ;
			}
			catch(IOException exp){
			}
		}
	}
}

结果:
在这里插入图片描述

目录
public boolean mkdir()创建目录

文件字节输入输出流

使用输入流的步骤,以字节为单位(汉字在文件中占用两个字节,可能会乱码)

文件字节

  1. 设定输入流的源
  2. 创建指向源的输入流
    try
    FileInputStream
    catch
  3. 让输入流读取源中的数据read
  4. 关闭输入流
package fix_error;
import java.io.*;
public class test {
	public static void main (String args[]) {
		int n = -1;
		byte [] a = new byte[100];
		try{
			File f = new File("ddd.txt");
			InputStream in = new FileInputStream(f);
			while((n=in.read(a,0,100))!=-1){
				String s= new String(a,0,n);
				System.out.println(s);
			}
		}
		catch(IOException e){
			
		}
	}
}

结果:
在这里插入图片描述

文件字节输出流
  1. 给出输出流的目的
  2. 创建指向目的地的输出流
  3. 让输入流把数据写入到目的地
  4. 关闭输入流
package fix_error;
import java.io.*;
public class test{
	public static void main(String args[]) {
		byte [] a="新年快乐".getBytes();
		byte [] b= "Happy New Year".getBytes();
		File file =new File("a.txt");
		//输出的目的地
		try{
			OutputStream out = new FileOutputStream(file); //指向目的地的输出流
			System. out. println(file.getName()+"的大小:"+file.length()+"字节") ;
			//a.txt的大小:0字节
			out.write(a) ;
			//向目的地写数据
			out.close () ;
			out = new FileOutputStream(file, true);
			//准备向文件尾加内容
			System.out.println(file. getName ()+"的大小:"+file.length()+"字节") ;
			//a.txt的大小:8字节
			out. write (b, 0,b.length) ;
			System. out.println(file.getName()+"的大小:"+file. length()+"字节");
			//a.txt的大小:22字节
			out.close() ;
		}
		catch(IOException e) {
			System. out.println("Error "+e);
		}
	}
}

结果:
在这里插入图片描述

文件字符输入、输出流

FileReader 以字符数组read 数据,即以字符为基本单位处理数据
FileWriter …write…

缓冲流

BufferReader
BufferWriter

package fix_error;
import java.io.*;
public class test {
	public static void main (String args[]){
		File sourceFile = new File("a.txt");//读取的文件
		File targetFile = new File("b.txt");//写入的文件
		char c[] =new char[19];//char型数组
		try{
			Writer out = new FileWriter (targetFile, true) ;
			//指向目的地的输出流
			Reader in = new FileReader (sourceFile) ;
			int n =-1;
			//指向源的输入流
			while((n=in.read(c))!=-1) {
				out.write(c,0,n);
			}
			out.flush();
			out.close();
		}
		catch (IOException e){
			System.out.println("Error"+e);
	    }
	}
}

结果:
在这里插入图片描述

随机流

RandomAccessFile既可以指向流源,也可以指向目的地

数组流

源和目的地除了可以是文件,还可以是计算机累内存

数据流

。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值