《Java基础——IO流》

Java基础——IO流

        

        

        

一、字节流;


1.输入流 (InputStream)

规则:

  1. 代码效果:读取“1.txt”文件的字节内容,转换成字符后通过输出语句输出。  

代码:

import java.io.*;

public class Teacher
{
	public static void main(String[] args) throws IOException	//抛出异常
	{
		File file=new File("D:/软件/Desktop/1.txt");		       //创建一个File对象指向待读取的txt文件	
		FileInputStream input=new FileInputStream(file);		//定义一个文件输入流
		byte m[]=new byte[1024];								//定义一个字节数组
		input.read(m);											//将输入流的数据读入到字节数组
		String n=new String(m, "UTF-8");						//通过“UTF-8”编码表将字节转换成字符
		input.close();											//关闭输入流
		System.out.println(n);			
	}
}

        

2.输出流(OutStream)

规则:

  1. 代码效果:生成一个文本内容为" Hello World! "的文本文件“2.txt”。
  2. 若该txt文件存在则直接向文件中写入“ Hello World! ”的字节内容,若该txt文件不存在则会自动生成。

代码:

import java.io.*;

public class Student 
{
	public static void main(String[] args) throws IOException	//抛出异常
	{
		File file=new File("D:/软件/Desktop/2.txt");			   //创建一个File对象指向待生成的txt文件				
		FileOutputStream output=new FileOutputStream(file);		//定义一个文件输出流
		String str=" Hello World! ";							
		byte m[]=str.getBytes();								//将字符转换成字节
		output.write(m);										//将字节写出到文件
		output.flush();											//刷新缓冲区数据,即保存操作
		output.close();											//关闭输入流	
	}

}

        

        

二、字符流;


1.输入流(Reader)

规则:

  1. 代码效果:读取“1.txt”文件的文本内容,并通过输出语句输出。

代码:

import java.io.*;

public class Student 
{
	public static void main(String[] args) throws IOException
	{
		String file="D:/软件/Desktop/1.txt";						//效果同上
	    FileReader reader=new FileReader(file);
	    char m[]=new char[1024];
	    reader.read(m);
        reader.close();
        System.out.println(m);
	}
}

                

2.输出流(Writer)

规则:

  1. 此处用于将具体文本输出到txt文件中。
  2. 若该txt文件存在则直接输出,若该txt文件不存在则会自动生成。

代码:

import java.io.*;

public class Teacher 
{
	public static void main(String[] args) throws IOException
	{
		String file="D:/软件/Desktop/2.txt";
		FileWriter writer=new FileWriter(file);
		writer.write("Hello World!");
		writer.flush();
		writer.close();
	}
}

        

        

三、复制文件;


1.字符流读写文件

规则:

  1. 代码效果:生成“2.txt”文件,读取“1.txt”的字符内容并写入到“2.txt”。
  2. read(char j[]) 方法:读写将字符流中的数据读入到字符数组中,如果读取到文件末尾则返回-1,否则返回读取到的长度。(通过循环读写时会接着上次读写的位置)
  3. write(char j[],int s,int len) 方法:将字符数组按照偏移量写入到字符流中,偏移量为(len-s)。
  4. 优点:快。
  5. 缺点:只能复制字符文件如txt文件。

代码:

import java.io.*;

public class Read 
{
	public static void main(String[] args) throws IOException
	{
		String m="D:/软件/Desktop/1.txt";
        String n="D:/软件/Desktop/2.txt";
        FileReader reader=new FileReader(m);
        FileWriter writer=new FileWriter(n);
        int len=0;
        char j[]=new char[1024];
        while((len=reader.read(j))!=-1)			//每次读写1k,每次判断循环条件都会继续读写	
        {
            writer.write(j,0,len);		
        }
        reader.close();
        writer.close();
	}

}

        

2.字节流读写文件

规则:

  1. 代码效果:生成“2.jpg”文件,读取“1.jpg”的字节内容并写入到“2.jpg”。
  2. 优点:几乎可以复制所有文件。
  3. 缺点:比字符流慢。

代码:

import java.io.*;

public class Write 
{
	public static void main(String[] args) throws IOException
	{
		String m="D:/软件/Desktop/1.jpg";
        String n="D:/软件/Desktop/2.jpg";
        FileInputStream input=new FileInputStream(m);
        FileOutputStream output=new FileOutputStream(n);
        int len=0;
        byte j[]=new byte[1024];
        while((len=input.read(j))!=-1)
        {
            output.write(j,0,len);
        }
        input.close();
        output.close();
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温稚生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值