zoukankan      html  css  js  c++  java
  • 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();
    	}
    }
    

      

  • 相关阅读:
    wget: command not found
    小程序循环多个picker选择器,实现动态增、减
    小程序 picker 多列选择器 数据动态获取
    有关https有的网站可以访问有的访问不了的问题
    微信小程序填坑之路
    linux如何搭建sftp服务器
    微信小程序模板中使用循环
    C#学习笔记(20)——使用IComparer(自己写的)
    C#学习笔记(19)——使用IComparer(百度文库)
    C#学习笔记(18)——C#构造函数中this和base的使用
  • 原文地址:https://www.cnblogs.com/virtualNatural/p/2707947.html
Copyright © 2011-2022 走看看