文本的输入输出



字节流-——》字符流的转换

输入来源:键盘,文件,网络
  1. InputStreamReader in = new InputStreamReader(System.in);
  2. InputStreamReader in = new InputStreamReader(new FileInputStream("lmk.txt"),"ISO8859_5");
输出方向:文件,屏幕
  1. FileWriter out = new FileWriter("output.txt");
  2. FileWriter out = new FileWriter(new FileOutputStream("output.txt"),"ISO8859_5");
  3. OutputStreamWriter = new OutputStreamWriter(System.out);

文件的写入
主要使用 BufferedWriter PrintWriter   如果获得的输出流是二进制的则需要outputStreamWriter
文件的读入
主要使用BufferedReader 和
  • java.util.Scanner (implements java.util.Iterator<E>) 它并没有继承Stream或者Reader/Writer
package com.lmk.test.iotest;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class IoTest {
	
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		IoTest io = new IoTest();
		System.out.println(System.getProperty("user.dir"));
//		io.outfresh1();//使用PrintWrite写入
//		io.outfresh2();//使用BufferedWrite写入
		io.writeMore();
//		io.infresh1();//使用BufferedReader
		io.infresh2();//使用Scanner
		
	}

	private void writeMore() {
		// TODO Auto-generated method stub
		BufferedWriter write = null;
		String name = "newlmk";
		int age =22;
		try {
			write = new BufferedWriter(new FileWriter("d:/lmk.txt",true));//重点是这里要有True
			for (int i=0;i<=100;i++){
				write.append(name);
				write.append(" ");
				write.append(age+"");//此处一直写错,不知原因,但是最好不要使用BufferedWrite来写。
				write.newLine();
			}
			write.flush();
			write.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void infresh2() {
		// TODO Auto-generated method stub
		Scanner scanner = null;
		try {
			scanner = new Scanner(new FileReader("d:/lmk.txt"));
			while (scanner.hasNext()){
				System.out.print(scanner.nextLine());
			}
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

	private void infresh1() {
		// TODO Auto-generated method stub
		BufferedReader reader = null;
		try {
			reader = new BufferedReader(new FileReader("d:/lmk.txt"));
			System.out.println(reader.readLine());
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	private void outfresh2() {
		// TODO Auto-generated method stub
		BufferedWriter write = null;
		String name = "newlmk";
		int age =22;
		try {
			write = new BufferedWriter(new FileWriter("d:/lmk.txt"));
			for (int i=0;i<=100;i++){
				write.write(name);
				write.write(" ");
				write.write(age);//此处一直写错,不知原因,但是最好不要使用BufferedWrite来写。
				write.newLine();
			}
			write.flush();
			write.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			
		}
		
		
	}

	private void outfresh1() {
		// TODO Auto-generated method stub
		PrintWriter print = null;
		String name = "lmk";
		int age =22;
		try {
			print = new PrintWriter("d:/lmk.txt");//PrintWriter(OutputStream out) 
													//根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
			print = new PrintWriter(new FileWriter("d:/lmk.txt"));//PrintWriter(Writer out, boolean autoFlush) 创建新 PrintWriter。
			print.print(name);
			print.print(" ");
			print.println(age);
			print.flush();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e){
			e.printStackTrace();
		}finally{
			print.close();
		}
		
	}

}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值