码迷,mamicode.com
首页 > 编程语言 > 详细

总结一下今天回顾的JavaIO的一些基本内容

时间:2015-08-29 23:24:44      阅读:390      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
1.看java编程思想Io这一部分的时候遇到一个题目,需要用到字符串的反转,所以记录下来

package com.jww.china.app.test.all.io;

/** 
* @ClassName: StringReverseUtil 
* @Description: 自己实现java字符串反转类 
* @author 维维 
* @date 2015年8月29日 下午7:35:11 
*  
*/
public class StringReverseUtil {

	public static void main(String[] args) {
		String s=" I love java";
		
		System.out.println(reverseString(s));
	}

	protected static String reverseString(String s) {
		char[] c=s.toCharArray();
		int begin=0;
		int end=c.length-1;
//		System.out.println(swapChar(c, begin, end));
		swapChar(c, begin, end);
		for(int i=0;i<end;i++){
			if(c[i]==' '){
				swapChar(c, begin, i-1);
				begin=i+1;
			}
		}
		return new String(c);
		
	}

	/** 
	* @Title: swapChar 
	* @Description: 先将整个String转为char,将整个char反转
	* @param @param c
	* @param @param begin
	* @param @param end    
	* @return void    返回类型 
	* 
	*/
	protected static String swapChar(char[] c, int begin, int end) {
		
		while(begin<end){
			char temp=c[begin];
			c[begin]=c[end];
			c[end]=temp;
			begin++;
			end--;
		}
		return new String(c);
	}
}


2.基本文件输出

package com.jww.china.app.test.all.io;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;

/** 
* @ClassName: BasicFileOutput 
* @Description: 从一个文件里面读取,然后写到另一个文件中去 ,基本的文件输出
* @author 维维 
* @date 2015年8月29日 下午8:51:53 
*  
*/
public class BasicFileOutput {
	public static void main(String[] args) throws IOException {
		writeFile();
	}
	
	private static void writeFile() throws IOException{
		BufferedReader in=new BufferedReader(new StringReader(readFile()));
		PrintWriter printWriter=new PrintWriter(new File("d:/b.txt"));
		String s;
		int lineCount=0;
		while(( s=in.readLine())!=null){
			printWriter.println(++lineCount+":"+s);
		}
		printWriter.close();
			
	}
    
	private static String readFile() throws IOException{
		BufferedReader b=new BufferedReader(new FileReader("d:/a.txt"));
		StringBuilder sb=new StringBuilder();
		String str;
		while((str=b.readLine())!=null){
			sb.append(str+"\n");
		}
		b.close();
		return sb.toString();
	}
}

3.缓冲输入文件

package com.jww.china.app.test.all.io;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;


/** 
* @ClassName: BufferedIputFile 
* @Description: 缓冲输入文件 ,基本的文件输入
* @author 维维 
* @date 2015年8月29日 下午5:57:47 
*  
*/
public class BasicFileInput {

	public static void main(String[] args) throws IOException {
		
		reverserString();
//		reverseStr();
//		System.out.println(bufferedInputFile("d:/a.txt"));
		bufferedReader("d:/a.txt");

	}
    /** 
    * @Title: reverseStr 
    * @Description: 无空格jdk自带方法反转String 
    * @param     
    * @return void    返回类型 
    * 
    */
    private static void reverseStr(){
    	Scanner s=new Scanner(System.in);
    	String str=s.nextLine();
    	
//    	System.out.println(new StringBuilder(str).reverse().toString());
    	System.out.println(new StringReverseUtil().reverseString(str).toString());
    }
	/** 
	* @Title: reverserString 
	* @Description: 有空格String,反转分词,jdk自带方法 
	* @param     
	* @return void    返回类型 
	* 
	*/
	private static void reverserString() {
		
		Scanner s=new Scanner(System.in);
		
		String string=s.nextLine();
		
		String[] str=string.split(" ");
	
		
		List<String> list=new ArrayList<String>();
		
		list=Arrays.asList(str);
		
		Collections.reverse(list);
		
		for(String l : list){
			System.out.print(l+" ");
		}
	}
	
	/** 
	* @Title: bufferedInputFile 
	* @Description: 利用bufferedreader 来输入一个文件
	* @param @param fileName
	* @param @return
	* @param @throws FileNotFoundException    设定文件 
	* @return String    返回类型 
	* @throws 
	*/
	private static String bufferedInputFile(String fileName) throws FileNotFoundException{
		
		BufferedReader read =new BufferedReader(new FileReader(fileName));
		String s;
		StringBuilder sb=new StringBuilder();
		try {
			while((s=read.readLine())!=null){
				sb.append(s+"\n");
			}
			read.close();
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		return sb.toString();
	}
	
	/** 
	* @Title: bufferedReader 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param fileName
	* @param @throws IOException    设定文件 
	* @return void    返回类型 
	* @throws 
	*/
	private static void bufferedReader(String fileName) throws IOException{
		 
		BufferedReader read =new BufferedReader(new FileReader(fileName));
         
		 LinkedList<String> l=new LinkedList<String>();
		 
		 String s;
		 String s1;
		 String s2 = null;
		 while((s=read.readLine())!=null){
			 s1=s;
			 l.add(s1);
		 }
		 read.close();
		 for (int i = 0; i < l.size(); i++) {
			System.out.println(l.get(i).toString());
			System.out.println(new StringBuilder(l.get(i)).reverse().toString()); 
		}
	}
	
	

}

4.序列化与反序列化一个java pojo


package com.jww.china.app.test.all.serializable;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * 测试序列化代码
 * @author Administrator
 *
 */
public class TestSerializable {
     
	 public static void main(String[] args) throws FileNotFoundException {
		 
		 Person p1=new Person();
		 Person p2=new Person();
		 p1.setAge(12);
		 p1.setName("ww");
		 p2.setAge(13);
		 p2.setName("zy");
		 writeObject(p1, p2);
		 System.out.println(readObject("d:/a.txt"));
		 
	}

	/**
	 * @param p1
	 * @param p2
	 * @throws FileNotFoundException
	 */
	private static void writeObject(Person p1, Person p2)throws FileNotFoundException {
		
		//序列化相对于程序来说是输出到txt中所以是out
		 FileOutputStream out =new FileOutputStream(new File("d:/a.txt"));
		 
		 try {
		//创建写入指定的out中的objectoutputstream
		ObjectOutputStream objectOutputStream=new ObjectOutputStream(out);
		
		objectOutputStream.writeObject(p1);
		objectOutputStream.writeObject(p2);
		
		objectOutputStream.flush();
		out.flush();
		
		objectOutputStream.close();
		out.close();
		
		System.out.println("序列化成功!!!");
		
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	private static Object readObject(String path){
		try {
			FileInputStream inputStream=new FileInputStream(path);
			ObjectInputStream inputStream2=new ObjectInputStream(inputStream);
//		    String	temp=inputStream2.readObject().toString();
		    Object temp=  inputStream2.readObject();
		    inputStream.close();
		    inputStream2.close();
			if (temp!=null) {
				System.out.println("反序列化成功!!");
				return temp;
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	    
}

















版权声明:本文为博主原创文章,未经博主允许不得转载。

总结一下今天回顾的JavaIO的一些基本内容

标签:

原文地址:http://blog.csdn.net/dq3wrr/article/details/48092089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!