io流

I一、O流分类
分类一,单独分类
1.按照数据的格式分,字符流和字节流
2.按照数据的输送方向分为输出流和输入流(小技巧:把自己比喻成内存,你想输出就用write,你想输入就用read)
分类二:综合分类
1.字节输出流
2.字节输入流
3.字符输出流
4.字符数入流
二、常用输出输入流及其定义方法
1.字节输入流
`package InputStreamDemo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;

/**

  • @author hcl
    *read(int a)一次读取一个方法
    *read(bytes[]) 依次读取多个方法

*/
public class inputStreamTest {
public static void main(String[] args) throws IOException {

	FileInputStream fis=new FileInputStream("E:\\Test\\Test\\test1.txt");
	/*while(fis.read()!=-1){
	System.out.println(fis.read() );
	
	
      
	
	 
	
    
}*/
	byte[] bytes=new byte[2];
	int read = fis.read(bytes);
	System.out.println(Arrays.toString(bytes));
fis.close();
}`

2.字节输出流

/**
 * @author hcl
 * FileoutputStream()
 * 构造方法
 * 参数:字符串的名称 字符串的文件
 *fileoutputstream(String name) 目的地路径
 *fileoutputstream(file file) 目的地文件
 *3.个作用
 *创建对象
 *创建一个空的文件
 *把对象指向创造的文件
 *java程序--》jvm--》os--》调用写数据的方法,把数据写入到文件中,
 *如何使用流(重点)
 *创建对象 构造方法中写入传入的目的地
 *调用write方法
 *释放资源(使用会占用一定内存)
 *
 */
public class OutputStraeamIDemo {
	public static void main(String[] args) throws IOException {
		FileOutputStream fos=new FileOutputStream(new File("E:\\Test\\Test\\test1.txt"),true);
	/*fos.write(12);
	fos.close(int()); 如果输入的数小于,127 则会自动查询ASCII吗
	如果前面是负数则会查询系统自带的汉字表
	续写和换行:使用两个参数的追加方法,
	fileoutputstream(string name,boolean append)
	append 追加开关
	
	
	*/
		fos.write(49);
		fos.write(48);
		fos.write(48);
		byte[] b={98,65,65,98};
		fos.write(b);
		byte[] bytes = "天才".getBytes();
		System.out.println(Arrays.toString(bytes));
		fos.write(bytes);
		for (int i = 0; i < 10; i++) {
			fos.write("ukin".getBytes());
			//换行
			
			fos.write("\r\n".getBytes());
		}
		
		
		
		
		fos.close();
		
	}
	
	

}

3.字符输出流

package CharInputAndOutput;

import java.io.FileWriter;
import java.io.IOException;
//续写和换行 使用两个参数的构造方法    append'追加写续写开关
//windows \r\n  linux /r mac /n

public class WriterTest {

	public static void main(String[] args)  throws IOException {
		// TODO Auto-generated method stub
		FileWriter fw=new FileWriter("E:\\Test\\Test\\test3.txt");
		fw.write(65);
		System.out.println("===============");
		char [] c={'a','b','c','d'};
		fw.write(c,0,3);
		System.out.println("===============");
		fw.write("我就是我,不一样的烟火");
		fw.write("好骚啊", 0, 1);
		fw.flush();
		fw.close();
		
		

	}

}

4.字符输入流
package CharInputAndOutput;

import java.io.FileReader;
import java.io.IOException;

/*
*
*/

public class ReaderTest {

public static void main(String[] args) throws IOException {
	// TODO Auto-generated method stub
	FileReader fr=new FileReader("E:\\Test\\Test\\test1.txt");
	/*int  len=0;
	while((len=fr.read())!=-1){
		System.out.println((char)len);
	}*/
	char[] cs=new char[1024];
	int len=0;
	while((len=fr.read(cs))!=-1){
		System.out.println(new String(cs, 0, len).toString());
	}

fr.close();
}

}

三、字符缓冲区
1.字符输入缓冲区

package BufferoutpputStream;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
/*
 * 构造方法
 * bufferewrite(write out) 创建一个默认使用的字符输出流
 * bufferewrite(write out,int size) 创建一个指定长度使用的字符输出流
 * 特有的成员方法 
 * new line()获取行分隔符;使用步骤
 * 创建一个字符缓冲输出流对象,
 * write方法
 * 3.调用flush,吧内存缓冲的数据刷新的文件中
 * 
 */

public class Bufferewrite {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedWriter bw=new BufferedWriter(new FileWriter("E:\\Test\\Test\\test5.txt",true));
		bw.write(65);
		bw.newLine();
		bw.write(65);
		bw.flush();
		bw.close();
		
		

	}

}

2.字符输出缓冲区

package BufferoutpputStream;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class demoBufferOutPutStream {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
        FileOutputStream fos=new FileOutputStream("E:\\Test\\Test\\test3.txt");
        BufferedOutputStream bos=new BufferedOutputStream(fos);
        bos.write("我把数据写入到文件中".getBytes());
        bos.flush();
        bos.close();
	}

}

四。与Propieties集合的联合运用

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;


public class propretiesTest {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
//		show();
		//storeTest
		
		
		//method2();
		//loadTest
		/*
		 * 创建步骤:
		 * 1.创建properties 对象
		 * 2.使用集合对象中的load方法读取键值对
		 * 3.遍历Proper集合
		 * #可以返回
		 */
		method3();

	}
//取数据
	public static void method3() throws IOException {
		// TODO Auto-generated method stub
		Properties p=new Properties();
		FileReader fr=new FileReader("E:\\Test\\Test\\test4.txt");
		p.load(fr);
		Set<Object> keySet = p.keySet();
		for(Object key:keySet){
			
			System.out.println(key+"=="+p.getProperty((String)key));
			
		}
		
		
		
		
		
	}
//存数据
	public static void method2() throws IOException {
		// TODO Auto-generated method stub
		Properties p=new Properties();
		p.setProperty("赵丽颖", "18");
		p.setProperty("hhh", "18");
		p.setProperty("jjj", "18");
		FileWriter fos=new FileWriter("E:\\Test\\Test\\test4.txt");
		p.store(fos, "save data");
		
		
	}

	public static void show() {
		// TODO Auto-generated method stub
		//创建一个集合对象
		Properties p=new Properties();
		//使用set添加数据
		p.setProperty("赵丽颖", "18");
		p.setProperty("hhh", "18");
		p.setProperty("jjj", "18");
		Set<String> names = p.stringPropertyNames();
		for(String name:names){
			System.out.println(name);
			System.out.println(p.getProperty(name));
		}
		
		
		
	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值