江湖开发者 | Java粉
网站地图
首页> Java> java io流 Demo
2016
03-14

java io流 Demo

java io流 Demo


IO流的分类:

文件流:

FileInputStream , FileOuntputStream  , FileReader  , FileWriter

缓冲流:

BufferedInputStream  , BufferedOutputStream  BufferedReader  , BufferedWriter

转换流:

InputStreamReader , OutputStreamWriter

数据流:

DataInputStream  , DataOutputStream 

打印流:

PrintStream , PrintWriter

对象流:--序列化 ,反序列化

ObjectInputStream ,ObjectOutputStream

随机存取文件流:

RandomAccesssFile


Demo:

public static void main(String[] args) {
		FileReader fr = null;
		try{
			fr = new FileReader("d:\\test.txt");
			char[] buf = new char[1024];
			int len = 0;
			while((len = fr.read(buf))!=-1){
				System.out.println(new String (buf,0,len));
			}
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			if(fr!=null){
				try{
					fr.close();
				}catch(IOException e){
					e.printStackTrace();
				}
			}
		}
	}
public void  FileWriterTest(){
		FileWriter fw = null;
		try{
			fw = new FileWriter("Text.txt");
			fw.write("text");
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			if(fw!=null){
				try{
					fw.close();
				}catch(IOException e){
					e.printStackTrace();
				}
			}
		}
		
	}
/**
	 * 复制文件
	 */
	public void BufferedReaderTest(){
		
		BufferedReader br = null;
		BufferedWriter bw = null;
		try{
			
			br = new BufferedReader (new FileReader("d:\\source.txt"));
			bw = new BufferedWriter(new FileWriter("d:\\dest.txt"));
			
			String str = null;
			while((str=br.readLine())!=null){
				bw.write(str);
				bw.newLine();
			}
			bw.flush();
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			try{
				if(bw!=null){
					bw.close();
				}
			}catch(IOException e){
				e.printStackTrace();
			}
			try{
				if(br!=null){
					br.close();
				}
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}	
/**
	 * InputStream 实现 文件的复制
	 */
	// 实现从一个文件到另一个文件的复制操作
		public static void copyFile(String src, String des) {
			// 1.声明两个File文件:一个是源文件(必须存在),一个是目标文件(可以不存在)。
			File file1 = new File(src);
			File file2 = new File(des);

			// 2.创建文件输入流和输出流
			FileInputStream fis = null;
			FileOutputStream fos = null;
			try {
				fis = new FileInputStream(file1);
				fos = new FileOutputStream(file2);

				// 3.实现从一个文件到另一个文件的写入
				byte[] b = new byte[1024];
				int len;
				while ((len = fis.read(b)) != -1) {
					fos.write(b, 0, len);
				}
			}catch (IOException e) {
				e.printStackTrace();
			}finally{
				try {
					if(fos != null)
						fos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}finally{
					try{
						if(fis != null)
							fis.close();
					}catch(IOException e1){
						e1.printStackTrace();
					}
				}
			}
		}		
/**
		 * BufferedInputStream
		 * @throws IOException 
		 */
		
		public void bufferedInputStreamTest() throws IOException{
			File file1 = new File("1.txt");
			FileInputStream fis = new FileInputStream(file1);
			BufferedInputStream bis = new BufferedInputStream(fis);
			byte[] b = new byte[1024];
			int len ;
			while((len=bis.read(b))!=-1){
				String str = new String(b, 0, len);
				System.out.print(str);
				
			}
		}
/**
		 *  对象流, 要求对象需要 实现 Serializable接口
		 */
		
		/**
		 * 序列化:
		 * ObjectOutputStream
		 * 要求写入的对象,对应的类一定是可序列化的,即对象对应的类要实现java.io.Serializable接口
		 */
		public void testObjectOutputStream() throws IOException{
			ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("hello1.txt"));
			oos.writeObject(new Person("Tom",12));
			oos.flush();
			oos.writeObject(new Person("Jerry",20));
			oos.flush();
			
			oos.close();
		}
		/**
		 * 反序列化:
		 * ObjectInputStream
		 */
		public void testObjectInputStream() throws IOException, ClassNotFoundException{
			ObjectInputStream ois = new ObjectInputStream(new FileInputStream("hello1.txt"));
			
			Object obj = ois.readObject();
			Person p1 = (Person)obj;
			
			System.out.println(p1);
			
			obj = ois.readObject();
			p1 = (Person)obj;
			System.out.println(p1);
		}
		
		/**
		 * RandomAccessFile 随机访问文件一般用于 断点续传,断点下载 等。
		 */

1.有时候往文件中写入内容的时候,没有换行,但写入的内容自动换行了,可以替换"\n""\r"为空。

2.FileReader 判断是否文件结尾 while((len = fr.read(buf))!=-1){

  BufferedFileReader 判断是否文件结尾 while((str=br.readLine())!=null){


Java江湖     
全部评论:

表情验证码,看不清楚,换一张

随机文章

云标签

公众号

微信

分享:分享我们的知识;专注:专注个人技术的提升;