• java中文字符读写


    package qjt.chinesefile;
    import java.io.*;
    import java.util.*;
    /**
     * 以行的方式读中文文件内容件,不会乱码
     * @author J. Qiu
     * @since 2009.07
     * */
    public class ChineseFileReader {
    	private boolean isEnd;
    	private int count;
    	private StringBuffer line;
    	private char[] cbuf;
    	private FileReader fr;
    	private StringTokenizer depart;
    	private boolean hasString;
    	
    	public ChineseFileReader(String file)throws IOException{
    		File f=new File(file);
    		init(f);
    	}
    	public ChineseFileReader(File file)throws IOException{
    		init(file);
    	}
    	private void init(File f)throws IOException{
    		isEnd=false;
    		count=0;
    		line=new StringBuffer();
    		cbuf=new char[1024];
    		hasString=false;
    		fr=new FileReader(f);
    		int len;
    		char[] t;
    		
    		while((len=fr.read(cbuf,0,cbuf.length))>0){
    			if (len==cbuf.length)
    				line.append(String.valueOf(cbuf));
    			else{
    				t=new char[len];
    				System.arraycopy(cbuf,0,t, 0,len);
    				line.append(String.valueOf(t));
    			}
    		}
    //		System.out.println(String.valueOf(cbuf));
    	}
    	public String readLine()throws IOException{
    		if (isEnd) return null;
    		if(!hasString){
    			depart=new StringTokenizer(line.toString(),"\n"); 
    			hasString=true;
    		}
    		if(count==depart.countTokens()){
    			isEnd=true;
    			return null;
    		}
    		return depart.nextToken();
    	}
    	public void close() throws IOException{
    		if (fr!=null) fr.close();
    	}
    }
    

      

    package qjt.chinesefile;
    import java.io.*;
    /**
     * 以行的方式写中文内容到文件,不会乱码
     * @author J. Qiu
     * @since 2009.07
     * */
    public class ChineseFileWriter {
    	private FileWriter f;
    	private FileOutputStream fos=null;
    	public ChineseFileWriter(String file)throws IOException{
    		File f=new File(file);
    		init(f);
    	}
    	public ChineseFileWriter(File file)throws IOException{
    		init(file);
    	}
    	private void init(File f) throws IOException{
    			fos=new FileOutputStream(f);
    	}
    	public void println(String line) throws IOException{
    		line+='\n';
    		byte[] str=line.getBytes();
    		fos.write(str);
    	}
    	public void print(String line) throws IOException{
    		byte[] str=line.getBytes();
    		fos.write(str);
    	}
    	public void close()throws IOException{
    		if(fos!=null)
    			fos.close();
    	}
    }
    

      

  • 相关阅读:
    14.3.2.1 Transaction Isolation Levels 事务隔离级别
    ReentrantLock可重入锁
    Lock与synchronized 的区别
    synchronized 与 Lock
    This usually indicates a missing no-arg constructor or that the editor's class name was mistyped in
    Oracle dump 分析secondary key
    java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
    Oracle 验证IOT表数据存储在主键里
    Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for U
    Oracle heap 表的主键 dump 分析
  • 原文地址:https://www.cnblogs.com/virtualNatural/p/2707947.html
Copyright © 2020-2023  润新知