java IO流(转换流)

1.将文本文件显示在控制台上

public static void test1() throws IOException {
		//将文本文件显示在控制台上
		//创建转换流,读入文件
		BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("in.txt")));
		//创建一个转换流,并使用BufferedReader提高效率
		BufferedWriter out=new BufferedWriter(new OutputStreamWriter(System.out));
		String string=null;
		while((string=in.readLine())!=null) {
			//写入
			out.write(string);
			//换行
			out.newLine();
			//刷新
			out.flush();
		}
	}

2.将键盘输入的内容写到文件里

public static void test2() throws IOException {
		//将键盘输入的内容写入到一个文件里
		BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));
		String string=null;
		while((string=in.readLine())!=null) {
			if(string.equals("over"))
				break;
			out.write(string);
			out.newLine();
			out.flush();
		}
	}

3.将从文件中读到的数据写到文件里

public static void test3() throws IOException {
		BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("in.txt")));
		BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));
		String string=null;
		while((string=in.readLine())!=null) {
			out.write(string);
			out.newLine();
			out.flush();
		}
	}

4.从键盘读入数据,从键盘输出数据

//实现从键盘读入,从键盘输出
	public static void test4() throws IOException {
		InputStream in=System.in;
		///字节流转变为字符流
		InputStreamReader change=new InputStreamReader(in);
	    //装饰,提高效率
		BufferedReader buff=new BufferedReader(change);
	    String string=null;
	    //字节流
	    OutputStream out=System.out;
	    ///FileWrite的父类
	    OutputStreamWriter changew=new OutputStreamWriter(out);
	    BufferedWriter buffout=new BufferedWriter(changew);
	    while((string=buff.readLine())!=null) {
	    	out.write(string.getBytes());
	    	if(string.equals("over"))
	    		break;
	    //	System.out.println(string.toUpperCase());
	    	buffout.write(string+'\r'+'\n');
	    	buffout.flush();
	    }
	}

5.指定编码格式的写入操作

//指定编码表的写入操作
	public static void test5() throws IOException {
		OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("gbk1.txt"),"GBK");
		FileWriter fw=new FileWriter("gbk2.txt");
		//如上两种操作的等效,
		//FileWriter实际上是已经指定好编码格式的转换流,
		//入过需要指定具体的编码格式,FileWriter就不行了
		osw.write("你好");
		fw.write("你好");
		osw.flush();
		fw.flush();
	}
//指定编码格式读入,要使用相同的编码格式解码
	public static void test6() throws IOException {
		//使用utf-8编码格式读入
		OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("utf-8.txt"),"utf-8");
		osw.write("你好");
		osw.flush();
		//如果是用FileReader读入,因为FileReader是默认的系统的编码格式GBK,所以在解码是会乱码
		FileReader file1=new FileReader("utf-8.txt");
		char []ss=new char[1024];
		int len=file1.read(ss);
		String string=new String(ss,0,len);
		System.out.println(string);
		//使用转换流指定utf-81的编码格式解码,就不会出现乱码的情况
		InputStreamReader ipr=new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8");
		len=ipr.read(ss);
		string=new String(ss,0,len);
		System.out.println(string);
	}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值