IO流

流:IO####
	内存与设备之间传输数据的通道

分类:
宏观:
方向:输入、输出流;即内存与设备之间相互传输数据。
单位:字节、字符流;字节流可读所有数据,字符流可读文本数据。
功能:
节点:实际传输读写功能
过滤:节点流的增强
抽象类:
字节:
输入:InputStream
输出:OutputStream
字符:
输入:Reader
输出:Writer
实现类:
字节:
输入:FileInputStream
输出:FileOutStream
字符:
输入:FileReader
输出:FileWriter
过滤流(缓冲):
字节:
输入:BufferedInputStream
输出:BufferedOutputStream
字符:
输入:BufferedReader
输入:BufferedWriter、PrintWriter
对象:
输出:ObjectOutStream
输入:ObjectIntStream
方法:
字节:
read()
write()//参数内char或byte[] ;三参数为byte[]数组、从n起、每次写m个。
flush()//刷新、缓冲区转移设备中。
close()//程序结束前刷新全部缓冲区至设备
字符 :
readChar/Integer…(基本类型)//返回块数据
newLine()//换行
print()/println() //字符过滤流PrintWriter下使用,不换行/换行
桥转换法:
InputStreamRead/OutPutStreamWriter
字节流转字符流,可设置字符流编码格式
编码格式:
GBK:国标简体
UTF-8:Unicode字符集
编码:
String s = “XXX”;
byte[] bs = s.getBytes(“GBK/UTF-8”);
解码:
String str = new String(s,“GBK/UTF-8”);
注意:解码格式与转码相同
File类:
代表物理盘中一个文件或文件夹
方法:
isDirectory(); //判断是否为文件夹
isFile() //判断是否为文件
isHidden() //判断是否为隐藏文件
listFiles() //获得File对象数组
getName().endsWith(.doc/.txt/.class…) //判断文件类型
listFiles(new FileFileter实现类) //抽象类过滤器

作业:

1 、
在这里插入图片描述BC
2 、

import java.io.File;
public class Homework2 {
	public static void main(String[] args)  {
		File file = new File("Files\\hello.txt");
		if(file.isFile()){
			System.out.println(file.getAbsolutePath());
		}
	}
}

10、
在这里插入图片描述
FileWrite类将字符写入输出流
PrintWriter类增加了换行的功能
FileOutStream类可设置字符编码

11、
在这里插入图片描述
字节流

14、

import java.io.*;
public class Homework14 {
	public static void main(String[] args) throws Exception {
		InputStream fos1 = new FileInputStream("test.txt");
		InputStreamReader isr = new InputStreamReader(fos1,"UTF-8");
		BufferedReader br = new BufferedReader(isr);
		OutputStream fos2 = new FileOutputStream("test2.txt");
		OutputStreamWriter osw1 = new OutputStreamWriter(fos2,"UTF-8");
		PrintWriter pw1 = new PrintWriter(fos2);
		while(true) {
			String s = br.readLine();
			if(s == null) {
				break;
			}
			pw1.println(s);
		}
		br.close();
		pw1.close();
	}
}

17、

import java.io.*;
import java.util.Scanner;
public class Homework17{
	public static void main(String[] args) throws IOException {
		InputStream is = new FileInputStream("worldcup.txt");
		InputStreamReader isr = new InputStreamReader(is,"UTF-8");
		BufferedReader br = new BufferedReader(isr);
		System.out.println("请输入一个年份:");
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		while(true){
			String s  = br.readLine();
			if(s.contains(str)){
				char[] chr = s.toCharArray();
				for(int i = s.indexOf("/") + 1 ; i < s.length(); i++){
					System.out.print(chr[i]);
				}	
			}else{
				System.out.println("没有举办世界杯");
			}
		}
	}
}

18、

public class Homework18 {
	public static void main(String[] args) throws Exception {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入一个路径:");
		String str = scan.next();
		File file=new File(str);
		if(file.exists()) {
			BufferedReader r=new BufferedReader(new InputStreamReader(new FileInputStream(str),"GB2312"));
			PrintWriter w=new PrintWriter(new OutputStreamWriter(new FileOutputStream("copy_"+str),"UTF-8"));
			while(true) {
				String str1=r.readLine();
				if(str1==null) {
					break;
				}
				w.println(s1);
			}
			w.close();
			r.close();
		}
	}
	````
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值