java文件流一些小练习

在编程过程中,会有一些文件流的应用

1.读取文件将文件内容打印

import java.io.*;

public class wenjialianxi {

	/**
	 * @param args
	 * 读取文件将文件内容打印
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
       int b;
       byte tom[]=new byte[18];
       try{
    	   File f=new File("F://game/game1.txt");
    	   FileInputStream in=new FileInputStream(f);
    	   while((b=in.read(tom,0,18))!=-1){
    		   String s=new String(tom,0,b);
    		   System.out.print(s);
    	   }
    	   in.close();
    	   
       }catch(IOException e){
    	   System.out.println("File read Error"+e);
       }
	}

}

 2.列出当前所在程序含有java的目录

import java.io.*;

public class wenjianlianxi1 {

	/**
	 * @param args
	 * File类
	 * 列出当前所在程序含有java的目录
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File dir=new File(".");
		FileAccept fileAccept=new FileAccept();
		fileAccept.setExtendName("java");
		String fileName[]=dir.list(fileAccept);
		for(String name:fileName){
			System.out.println(name);
		}

	}

}

class FileAccept implements FilenameFilter{
	private String extendName;
	public void setExtendName(String s){
		extendName="."+s;
	}
	public boolean accept(File dir,String name){
		return name.endsWith(extendName);
	}
}

3.

import java.io.*;
public class wenjianlianxi2 {

	/**
	 * @param args
	 * 	 *   * 写入文件“Happy New Year”
	 *   写入文件“新年快乐”
	 *   读取文件字节
	 *   将文件内容打印在控制台
	 *  */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		byte []a="新年快乐".getBytes();
		byte []b="Happy new year".getBytes();
		File file=new File("F://game/Dest.txt");
		try{
			OutputStream out=new FileOutputStream(file);
			System.out.println(file.getName()+"的大小:"+file.length()+"字节");
			
			out.write(a);
			out.close();
			out=new FileOutputStream(file,true);
			System.out.println(file.getName()+"的大小"+file.length()+"字节");
			
			out.write(b,0,b.length);
			out.close();
			
			FileReader fr=new FileReader(file);
			char[] c=new char[100];
			int len=0;
			while((len=fr.read(c))!=-1){
				System.out.println(new String(c,0,len));
			}
			fr.close();
			
		}catch(IOException e){
			System.out.println("Error"+e);
		}
		
		
	}

}

4.

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class wenjianlianxi3 {

	/**
	 * @param args
	 * 将几个java数据类型写入到一个文件中,然后读出来
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file=new File("F://game/Dest.txt");
		try{
			FileOutputStream fos=new FileOutputStream(file);
			DataOutputStream outData=new DataOutputStream(fos);
			outData.writeInt(100);
			
			
		}
		catch(IOException e){
			try {
				FileInputStream fis=new FileInputStream(file);
				DataInputStream inData=new DataInputStream(fis);
				System.out.println(inData.readInt());
				char c;
				while((c=inData.readChar())!='\0'){
						System.out.print(c);
				}
				
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			
			
		}
	}

}

5.

import java.io.*;

public class wenjianlianxi4 {

	/**
	 * @param args
	 * 缓冲流练习
	 * 使用字符串按行输入文件,然后使用BufferedReader流按行读取文件
	 * 天气预报
	 * 苏州晴
	 * 上海多云,有小雨
	 * 南京晴,有时多云
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		File file=new File("F://game/Dest1.txt");
		String content[]={"天气预报:","苏州晴","上海多云,有小雨","南京晴,有时多云"};
		try{
			FileWriter outOne=new FileWriter(file);
			BufferedWriter outTwo=new BufferedWriter(outOne);
			for(String str:content){
				outTwo.write(str);
				outTwo.newLine();
			}
			
			outTwo.close();
			outOne.close();

			
			FileReader inTwo=new FileReader(file);
			BufferedReader in=new BufferedReader(inTwo);
			String s=null;
			while((s=in.readLine())!=null){
				System.out.println(s);
			}
			inTwo.close();
			in.close();
			
		}catch(IOException e){
			System.out.println(e);
		}
		
	}

}

6.

import java.io.*;

public class wenjianliu5 {

	/**
	 * @param args
	 * 用随机流把几个int型整数写入一个名为tom文件中,按相反的顺序读出。
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		RandomAccessFile inAndOut=null;
		int data[]={1,2,3,4,5,6,7,8,9,10,11,12};
		try{
			inAndOut=new RandomAccessFile("F://game/tom.txt","rw");
			for(int i=0;i<data.length;i++){
				inAndOut.writeInt(data[i]);
			}
			for(long i=data.length-1;i>=0;i--){
				
				inAndOut.seek(i*4);
				System.out.print(","+inAndOut.readInt());
				
			}
			inAndOut.close();
		}
		catch(IOException e){
			System.out.println(e.getMessage());
		}

	}

}

7.

import java.io.*;
public class wenjianliu6 {

	/**
	 * @param args
	 * 用随机流读取中文
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		RandomAccessFile in=null;
		try{
			in=new RandomAccessFile("F://game/tom.txt","rw");
			long length=in.length();
			long postion=0;
			in.seek(postion);
			while(postion<length){
				String str=in.readLine();
				byte b[]=str.getBytes("ISO-8859-1");
				str=new String(b);
				postion=in.getFilePointer();
				System.out.println(str);
			}
		}
		catch(IOException e){System.out.println(e.getMessage());}
	}

}

8.

import java.io.*;

public class wenjianlianxi7 {

	/**
	 * @param args对象流练习
	 * 获取一个Student对象,内含学生身高,姓名
	 * 打印到文件里People.txt
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		student5 stu=new student5();
		stu.setName("韩帅哥");
		stu.setHeight(1.83);
		File file=new File("F://game/People.txt");
		try{
			FileOutputStream fileOut=new FileOutputStream(file);
			ObjectOutputStream objout=new ObjectOutputStream(fileOut);
			objout.writeObject(stu);
			objout.close();
			FileInputStream filein=new FileInputStream(file);
			ObjectInputStream objin=new ObjectInputStream(filein);
			student5 li=(student5)objin.readObject();
			li.setName("李娇娇");
			objin.close();
			li.setHeight(1.68);
			System.out.println(stu.name+"身高是:"+stu.height);
			System.out.println(li.name+"身高是:"+li.height);
			
		}
		catch(ClassNotFoundException event){
			System.out.println("不能读出对象");
		}
		catch(IOException e){
			System.out.println(e);
		}
		
		
	}

}

class student5 implements Serializable{//实现接口序列化对象
	String name=null;
	double height;
	public void setName(String name){
		this.name=name;
	}
	public void setHeight(double height){
		this.height=height;
	}
}

9.

import java.io.*;

public class wenjianlianxi8 {

	/**
	 * @param args
	 * 读取文件F://game/tom.txt
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		File file=new File("F://game/tom.txt");
		try{
			FileInputStream r=new FileInputStream(file);
			int count=0;
			byte[] b=new byte[100];
			while((count=r.read(b))!=-1){
				String s=new String(b,0,count);
				System.out.println(s);
			}
			r.close();
			
		}
		catch(IOException e){System.out.println(e.getMessage());}
		
	}

}

10.

public class wenjianliu9 {

	/**
	 * @param args
	 * 把中国万岁写入到lianxi9.txt
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		String content="中国万岁";
		char[] c=content.toCharArray();
		File file=new File("F://game/lianxi9.txt");
		try{
			FileWriter w=new FileWriter(file);
			w.write(c);
			w.close();
			
			FileReader r=new FileReader(file);
			int count=0;
			char[] b=new char[100];
			while((count=r.read(b))!=-1){
				String q=new String(b,0,count);
				System.out.println(q);
			}
			r.close();
		}
		catch(IOException e){
			System.out.println(e);
		}
	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值