java IO流

JavaIO流
1、字节/字符流的介绍
*Java数据流都存在Javaio包里面
*字节流1个字节,以InputStream、OutputStream为基类;类名大多以Stream结尾
*字符流2个字节,以Reader、Writer为基类,类名大多以Reader/Writer结尾
*所谓的in、out、输入、输出都是相对于内存而言的
1.1 字节流
*输入字节流:
InputStream的子类:FileInputStream、BufferedInputStream、DataInputStream
读取:

public class Test {
	public static void main(String[] args) throws IOException
	{
			FileInputStream in = new FileInputStream("C:\\Users\\Desktop\\java整理.txt");
		    int len;
		    //第一种方法
		/*while((len=in.read())!=-1)
		{
			System.out.print(len);
		}
		*/
		    //第二种方法
		byte[] b=new byte[1024];
		/*while((len=in.read(b))!=-1)
		{
			System.out.println(new String(b,0,len));
		}*/
		in.close();
	}
}

*输出字节流
OutputStream的子类:FileOutputStream、BufferedOutputStream、DataOutputStream、printStream
写入:

public class Test {
	public static void main(String[] args) throws IOException
	{
			FileOutputStream fos = new FileOutputStream("D:\\1.txt");
			String str="zhoubishenglidan";
			byte[] b=str.getBytes();
			for(int i=0;i<b.length;i++)
			{
				fos.write(b[i]);
			}	
			fos.close();			
	}
}

1.2 字符流
*输入字符流
Reader的子类:BufferedReader、FileReader
输入:

public class Test {
	public static void main(String[] args) throws IOException
	{
			FileReader fr = new FileReader("D://1.txt");
			BufferedReader br = new BufferedReader(fr);
			 FileWriter fw = new FileWriter("D://2.txt");
			 BufferedWriter bw = new BufferedWriter(fw);
			 while(br.ready())
			 {
				 String str=br.readLine();
				 bw.write(str);
				 System.out.println(str);
			 }
			 bw.close();
			 br.close();
			 fw.close();
			 fr.close();	
	}
}

*输出字符流
Writer的子类:FileWriter、BufferdeWriter
1.3 字符缓冲流
BufferedReader和BufferedWriter以类似缓冲区方式对数据进行输入输出,他们分别拥有8192个字符
1.4 字节流和字符流的异同
*字节流和字符流本质区别在于byte和char的区别:字节流采用二进制编码,字符流涉及本地编码问题
,网络通信建议使用字节流
*字节流和字符流之间的转化通过InputStreamReader和OutputStreamReader来关联,实际上是通过
byte[]和String来关联
*一个八位传输、一个十六位传输

你可能感兴趣的:(java IO流)