60eabdb03e0a001e1697b33abbd2cc6b

来自「物料管理 物料登记 批量登记:一次性导入多条物料 单条登记:只能录入一条」· 代码 · 共 128 行

TXT
128
字号
package com.qrsx.storage.view;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.Reader;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.List;

import com.qrsx.storage.manager.MaterialManager;
import com.qrsx.storage.model.Material;

/**
 * @author Administrator
 *
 */
public class MaterialImport {

	private MaterialManager materialManager;
	private String filePath;
	
	/**
	 * 构造方法,初始化 materialManager
	 * @param mgr
	 */
	public MaterialImport( MaterialManager mgr, String filePath ){
		this.materialManager = mgr;
		this.filePath = filePath;
	}
	
	public void importMaterial() throws Exception{
		
		//读取文件内容
		StringBuffer content = readFile();
		
		//解析文件内容
		List<Material> materials = parseFileToMaterial(content.toString());
		
		//导入数据库
		
		materialManager.addAll(materials);
		
	}
	
	/**
	 * 读取文件中的数据
	 * @param filePath
	 * @return
	 */
	private StringBuffer readFile( ) throws Exception {
		FileReader fr =new FileReader(filePath);
		int c=0;
		
		//实例化文件输入流
//		FileInputStream in=null;
//		in=new FileInputStream(filePath);
//		//获取文件通道
//		FileChannel fic=in.getChannel();
//	
//		//实例化缓冲区
//		ByteBuffer buffer=ByteBuffer.allocate(1024);
//		
		
		//实例化字符串缓冲区
		StringBuffer sb = new StringBuffer();
		while((c=fr.read())!=-1){
			//String b=String.valueOf((char)c);
			sb.append((char)c);
		}
		
		//读取数据
		
//		while(fic.read(buffer)!=-1){
//			buffer.flip();
//			String b=new String(buffer.array(),0,buffer.limit());
//			sb.append(b);
//			
//			buffer.clear();
//		}
//		in.close();
		
		return sb;
	}
	

	/**
	 * 解析文件内容
	 * @param content
	 * @return
	 * @throws Exception
	 */
	private List<Material> parseFileToMaterial( String content ) throws Exception {
		String[] field=content.split("\n");
		List<Material> list = new ArrayList<Material>();
		
		
		
		for(int i=1;i<field.length;i++){
		
			String[] fields=field[i].split("\t~");	
			Material material=new Material();
			material.setId(Integer.valueOf(fields[0]));
			material.setName(fields[1]);
			material.setClient(fields[2]);
			material.setUnit(fields[3]);
			material.setPrice(Float.valueOf(fields[4]));
			material.setTotal(Float.valueOf(fields[5]));
			material.setNote(fields[6]);
			list.add(material);
		}
		
		
//		String rowContent = ".......";
//		String[] fields = rowContent.split("\t~");
		
		//... 解析内容
		
		return list;
	}
	public static void main(String[] args) throws Exception{
		MaterialManager mm=new MaterialManager();
		String file="E:\\java\\storage\\src\\Material.txt";
		MaterialImport mi=new MaterialImport(mm,file);
		mi.importMaterial();
		System.out.println("OK!");
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?