`

java reader file & writer file

    博客分类:
  • java
 
阅读更多
package com.xjh.dh;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * 
 * ok
 * 
 * @author xiejiaohui
 *
 */
public class FileCheck {

	public static void main(String[] args) throws Exception {
		String file = "c:\\a.csv";
		String write_ok = "c:\\a_ok.csv";
		String write_er = "c:\\a_er.csv";
		
		// 没有乱码
		String read_charset = "gbk"; // 读文件的字符集
		String writer_charset = "utf-8"; // 写文件的字符集
		
		// 乱码
//		String read_charset = "utf-8";
//		String writer_charset = "gbk";
		
		// 乱码
//		String read_charset = "utf-8";
//		String writer_charset = "utf-8";
		
		// 乱码
//		String read_charset = "gbk";
//		String writer_charset = "gbk";
		
		// 乱码
//		String read_charset = "iso-8859-1";
//		String writer_charset = "iso-8859-1";
		
//		String charset = "utf-8";
//		String charset = "iso-8859-1";
//		String charset = "gb2312";
		InputStreamReader inputStreamReader = new InputStreamReader(
				new FileInputStream(file), read_charset);
		BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

		FileOutputStream outputStream_ok = new FileOutputStream(write_ok);
		FileOutputStream outputStream_er = new FileOutputStream(write_er);

		OutputStreamWriter writer_ok = new OutputStreamWriter(outputStream_ok,
				writer_charset);
		OutputStreamWriter writer_er = new OutputStreamWriter(outputStream_er,
				writer_charset);
		
		try {
			String s = null;
			int i = 0;
			while ((s = bufferedReader.readLine()) != null) {
				String[] s2 = s.split("\\,");
				if (s2.length != 54) {
//					System.out.println("error in line: " + (i + 1) + " " + s);
					System.out.println(s);
					i++;
					writer_er.append(s);
					writer_er.append("\n");
					continue;
				} else {
					writer_ok.append(s);
					writer_ok.append("\n");
				}
				i++;
			}
			System.out.println("ok " + i );
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			writer_ok.close();
			writer_er.close();
			bufferedReader.close();
		}
	}
}



以下两个文件会出现乱码

package com.xjh.dh;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;

/**
 * 
 * 写出来的文件有乱码
 * 
 * @author xiejiaohui
 *
 */
public class FileCheck2 {

	public static void main(String[] args) throws Exception {
		String file = "c:\\a.csv";
		FileWriter fileWriter_ok = new FileWriter(new File("c:\\a_ok.csv"));
		FileWriter fileWriter_er = new FileWriter(new File("c:\\a_er.csv"));
		String charset = "gbk";
//		 String charset = "utf-8";
//		String charset = "iso-8859-1";
//		String charset = "gb2312";
		InputStreamReader inputStreamReader = new InputStreamReader(
				new FileInputStream(file), charset);
		BufferedReader bufferedReader = new BufferedReader(inputStreamReader);		
		
		try {
			String s = null;
			int i = 0;
			while ((s = bufferedReader.readLine()) != null) {
				String[] s2 = s.split("\\,");
				if (s2.length != 54) {
					System.out.println("error in line: " + (i + 1) + " " + s);
//					System.out.println(s);
					i++;
					fileWriter_er.append(s);
					fileWriter_er.append("\n");
					continue;
				} else {
					fileWriter_ok.append(s);
					fileWriter_ok.append("\n");
				}
				i++;
			}
			System.out.println("ok " + i );
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			fileWriter_er.close();
			fileWriter_ok.close();
			bufferedReader.close();
		}

	}

}



package com.xjh.dh;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

/**
 * 
 * 写出来的文件有乱码
 * 
 * @author xiejiaohui
 *
 */
public class FileCheck3 {

	public static void main(String[] args) throws Exception {
		
		BufferedReader bufferedReader = new BufferedReader(new FileReader(
				"c:\\a.csv"));
		FileWriter fileWriter_ok = new FileWriter(new File(
				"c:\\a_ok.csv"));
		FileWriter fileWriter_er = new FileWriter(new File(
				"c:\\a_er.csv"));

		try {
			String s = null;
			int i = 0;
			while ((s = bufferedReader.readLine()) != null) {
				String[] s2 = s.split("\\,");
				if (s2.length != 54) {
					System.out.println("error in line: " + (i + 1) + " " + s);
//					System.out.println(s);
					i++;
					fileWriter_er.append(s);
					fileWriter_er.append("\n");
					continue;
				} else {
					fileWriter_ok.append(s);
					fileWriter_ok.append("\n");
				}
				i++;
			}
			System.out.println("ok " + i );
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			fileWriter_er.close();
			fileWriter_ok.close();
			bufferedReader.close();
		}

	}

}

分享到:
评论

相关推荐

    10.尚硅谷_java基础_IO

    IO 概述 File 类 IO 流分类 InputStream & Reader OutputStream & Writer RandomAccessFile 类 对象的序列化

    java的日志合并

    合并两个日子文件File file0=new File("D:\\230.log"); File file1=new File("D:\\231.log"); File file=new File("D:\\1.log"); BufferedReader reader0=null; BufferedReader reader1...

    只读Key-Value存储系统PalDB.zip

    3.1Ghz Macbook Pro:PalDB, LevelDB 和 RocksDB 吞吐量比较(越高越好)PalDB 和一个 Java HashSet 内存使用比较(越低越好)编写一个存储:StoreWriter writer = PalDB.createWriter(new File("store....

    NFC Classic Tag Reader Writer 1.11

    NFC Classic Tag Reader Collect NFC tags and save there basic informations.New version for 2.3.3 and up.Features: Read basic tag information UID, ISO, ATQ, SAK... Share NDEF tag. Create your own NDEF ...

    vhdl_file.zip_vhdl_zip

    File reader/writer modules

    audio_wavefiles:有一个Wavefile库

    该库包含一个用 Ada 2012 编写的 Wavefile Reader & Writer。它支持读写波形文件,包括以下功能: 单声道、立体声和多声道音频。 具有以下位深度的音频样本: 16/24/32/64 位 PCM 32/64 位浮点 PCM 波形格式可...

    Java 基础核心总结 +经典算法大全.rar

    节点流和处理流 Java IO 的核心类 File Java IO 流对象 字节流对象InputStream OutputStream 字符流对象Reader Writer 字节流与字符流的转换新潮的 NIO 缓冲区(Buffer)通道(Channel) 示例:文件拷贝案例 BIO 和 NIO ...

    java基础核心总结归纳---参考手册--心得手册-学习资料-总结经验

    File 类 24 基础 IO 类和相关⽅法 25 InputStream 25 OutputStream 25 Reader 类 26 Writer 类 26 InputStream 及其⼦类 27 OutputStream 及其⼦类 27 Reader 及其⼦类 28 Writer 及其⼦类 28 注解 28 关于 null 的...

    Java IO 体系.md

    - Java IO 的核心类 File - Java IO 流对象 - 字节流对象 - InputStream - OutputStream - 字符流对象 - Reader - Writer - 字节流与字符流的转换 - 新潮的 NIO - 缓冲区(Buffer) - 通道(Channel) ...

    廖雪峰 Java 教程.doc

    File对象 InputStream OutputStream Filter模式 操作Zip 读取classpath资源 序列化 Reader Writer PrintStream和PrintWriter 日期与时间 基本概念 Date和Calendar LocalDateTime ZonedDateTime ...

    Java IO, NIO and NIO.2(Apress,2015)

    In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes and related types, and the reader/writer classes). Next, you'll learn about NIO's buffer, channel, ...

    Microsoft mdb file reader and writer-开源

    对于没有安装Microsoft Access但想要读取和写入mdb文件的用户,此应用程序很有用。 它很容易使用。

    Java IO.pdf

    Java IO 一、概览 Java 的 I/O 大概可以分成以下几类: 磁盘操作:File 字节操作:InputStream 和 OutputStream ...字符操作:Reader 和 Writer 对象操作:Serializable 网络操作:Socket 新的输入/输出:NIO

    封装h264,/mpeg4 为MP4文件

    * @mark:获取轨道信息,该函数必须在OpenFile(……)之后调用才有效 */ int GetTrackInfo( MP4_TRACK_INFO* pstTrackInfo ); /* * @mark: 读取一帧数据 */ int ReadFrameData( DWORD nSampleId, ...

    java-实验报告.doc

    public class AnalysisResult{ public static void main(String args[]){ File fRead=new File("score.txt"); File fWrite=new File("scoreAnalysis.txt"); try{ Writer out= new FileWriter(fWrite,true);//以尾加...

    JAVA_输入输出及数据库操作.ppt

    7.1.1 流的含义 7.1.2 流的层次结构 7.1.3 标准输入输出 7.1.4 File类 7.1.5 FileInputStream类和FileOutputStream类 7.1.6 DataInputStream类和...7.1.8 Reader类和Writer类 7.1.9 IOException类的几个子类

    Java I/O 使用和最佳实践

    Java 中的 I/O 类由一组抽象类和接口...其中包括 File、InputStream、OutputStream、Reader、Writer 等类和接口。您可以使用这些类和接口来创建文件、读取和写入文件、以及读取和写入其他类型的数据(如网络数据等)

    JAVA基础课程讲义

    Writer 159 FileReader和FileWriter 159 BufferReader和BufferWriter 159 InputStreamReader和OutputStreamWriter 161 JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 ...

Global site tag (gtag.js) - Google Analytics