转载

Java的IO

java的IO,是通过流来进行的,和C++一样


java按照功能的不同,分为节点流和处理流

java按照数据流的方向,分为输入流和输出流

java按照处理数据的单位不同,分为字符流和字节流(一字符等于两字节,java使用UTF-16标准)



字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer

程序例子:

说明:

输入输出是对于程序而言的,输入时向程序输入,输出是向程序外输出

InputStream是字节流而中文是两字节的,所以用它读不出中文

而Reader是字符流,读入两字节,所以用其可以读出中文

还有就是用流读取数据时,可能出现IOException,和FileNotFoundException,记得catch


<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.io.*;
public class testInputOutput
{
	public static void main(String args[])
	{
		testInputStream();
		System.out.println();
		testReader();
		testOutputStream(); //这个也读出了中文,有待研究
		testReaderWriter();
	}
	
	private static void testInputStream() //类内方法可以访问private方法
	{
		try
		{
			FileInputStream input = new FileInputStream("E:\\The code\\PAT\\PAT B1001.cpp");
			int b;
			while((b = input.read()) != -1)
			{
				System.out.print((char)b);
			}
			input.close();
		}catch(FileNotFoundException e)
		{
			System.out.println("找不到文件指定路径");
		}
		catch(IOException e)
		{
			System.out.println("文件读写出错");
		}
	}
	
	private static void testReader()
	{
		try
		{
			FileReader reader = new FileReader("E:\\The code\\PAT\\PAT B1001.cpp");
			int b;
			while((b = reader.read()) != -1)
			{
				System.out.print((char)b);
			}
			reader.close();
			
		}catch(FileNotFoundException e)
		{
			System.out.println("找不到文件指定路径");
		}
		catch(IOException e)
		{
			System.out.println("文件读写出错");
		}
		
	}
	
	private static void testOutputStream() //复制一个文件到另一个文件
	{
		try
		{
			FileInputStream input = new FileInputStream("E:\\The code\\PAT\\PAT B1001.cpp");
			FileOutputStream output =  new FileOutputStream("F:\\testOutputStream.txt");//不会抛异常
			int b;
			while((b = input.read()) != -1)
			{
				output.write(b);
			}
			input.close();
			output.close();
		}catch(FileNotFoundException e)
		{
			System.out.println("找不到文件指定路径");
		}
		catch(IOException e)
		{
			System.out.println("文件读写出错");
		}
	}
	
	private static void testReaderWriter() //复制一个文件到另一个文件
	{
		try
		{
			FileReader reader = new FileReader("E:\\The code\\PAT\\PAT B1001.cpp");
			FileWriter writer =  new FileWriter("F:\\testReaderWriter.cpp");//不会抛异常
			int b;
			while((b = reader.read()) != -1)
			{
				writer.write(b);
			}
			reader.close();
			writer.close();
		}catch(FileNotFoundException e)
		{
			System.out.println("找不到文件指定路径");
		}
		catch(IOException e)
		{
			System.out.println("文件读写出错");
		}
	}
}</span>


以后再总结一下处理流!


正文到此结束
本文目录