博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
static代码块设置全局变量和eclipse java配好HDFS类对HDFS的操作
阅读量:2140 次
发布时间:2019-04-30

本文共 3557 字,大约阅读时间需要 11 分钟。

看到static就想到分享,听到这句话的时候稍微有了感觉

static 静态随着类的创建同时进入内存,他的消失也是和类同时。这样就会大大的减少运行时间,同时他还有static直接【类.】引用的特性,减轻了程序员的负担
而static代码块也是在类加载的时候加载,同时在实例化的构造方法的时候只执行一次,意思就是说我们每次在调用这个类的时候我们就只有第一次执行一次这个静态代码块,等下次调用的时候JVM就不需要将内存再分配一次,这样大大减少了内存的消耗,提高程序的韧度。(注,同时在静态全局变量的时候我们可以在类中引用。【类中可以new但是不可使用调用方法,所以作用比较大】)
谈到静态代码块就不得不提初始化语句块也就 {} 它的加载在main之后在类之前,且实例化的时候只执行一次。

将String 字符串转换成Path路径(这是JDK 1.7的新特性)

String p=new String("");
Path p=new Path§;

/** *  *HDFS的工具类,用来实现对HDFS的操作 *	1.文件的上传、下载、移动(重命名)、删除 *	2.目录的增、删、改、查 *	3.将文件从文件上传到HDFS上 *		inputPath 要上传文件的路径() *		outPath   目标路径(HDFS路径) */public class HDFutils {		private static Configuration conf=null;	private static FileSystem fs=null;	//对于静态变量的实例化,通常在静态代码块中实现	//代码块{}	static {		conf=new Configuration();		URI uri;		conf.set("dfs.replication","1");		try {			uri = new URI("hdfs://hadoop:9000");			fs=FileSystem.get(uri,conf,"root");		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}	//Alt + / 快捷提示	//Ctrl+shift+o 快速导包	//Ctrl +1 快捷提示	/**	 * 	 * @param inputPath 要上传文件的路径()	 * @param outputPath 目标路径(HDFS路径)	 */	public static void put(String inputPath,String outputPath) {			InputStream in=null;			OutputStream out=null;			try {				in=new FileInputStream(inputPath);				out=fs.create(new Path(outputPath));				 IOUtils.copy(in, out);			} catch (Exception e) {				e.printStackTrace();				// TODO Auto-generated catch block			}finally {				try {					in.close();					out.close();				} catch (IOException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}			}		}	//创建目录	public static void mkdir(String path) {				try {			fs.mkdirs(new Path(path));		} catch (IllegalArgumentException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}	 //改	public static void rename(String exsitedpath,String nowPath) {		try {			fs.rename(new Path(exsitedpath),new Path(nowPath));		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}	//删除@SuppressWarnings("deprecation")	public static void delete(String path) {		try {			fs.delete(new Path(path));		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}	//查	public static void check(String path) {		try {			fs.listStatus(new Path(path));		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}}

没有设置全局变量的HDFS上传下载方法详细注释

public static void get() throws Exception {

// //1、获取HDFS配置信息
// Configuration conf=new Configuration();
// //2.获取HDFS系统对象
// //FileSystem表示hadoop的文件系统
// URI uri=new URI(“hdfs://192.168.56.100:9000”);
// //fs表示hdfs文件系统
// FileSystem fs=FileSystem.get(uri,conf);
// //输出流,将数据写入到指定文件
// OutputStream out=new FileOutputStream(“a.text”);
// //输入流,读取数据到内存
//
// InputStream in=fs.open(new Path("/hadoop-2.7.3.tar.gz"));
// //通过输入流输出流拷贝的方式,进行数据的写入
// IOUtils.copy(in, out);
// //关闭资源
//
// in.close();
// out.close();
// fs.close();
//
// }
// public static void put() throws Exception{
// //1.创建配置信息
// Configuration conf=new Configuration();
//
// //指定上传文件的副本数量
// conf.set(“dfs.replication”, “1”);
// //2.获取HDFS文件系统对象
// URI uri=new URI(“hdfs://192.168.56.100:9000”);
// FileSystem fs=FileSystem.get(uri,conf);
// //3、输入流和输出流
// InputStream in=new FileInputStream(“a.text”);
// OutputStream out=fs.create(new Path("/hadoop.text"));
// IOUtils.copy(in, out);
// in.close();
// out.close();
// fs.close();
// }

转载地址:http://xipgf.baihongyu.com/

你可能感兴趣的文章
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
Redis学习笔记(四)—— redis的常用命令和五大数据类型的简单使用
查看>>
Win10+VS2015编译libcurl
查看>>
Windows下使用jsoncpp
查看>>
Ubuntu下测试使用Nginx+uWsgi+Django
查看>>
Windows下编译x264
查看>>
visual studio调试内存泄漏工具
查看>>
开源Faac实现PCM编码AAC
查看>>
Windows下wave API 音频采集
查看>>
借船过河:一个据说能看穿你的人性和欲望的心理测试
查看>>
AndroidStudio 导入三方库使用
查看>>
Ubuntu解决gcc编译报错/usr/bin/ld: cannot find -lstdc++
查看>>
解决Ubuntu14.04 - 16.10版本 cheese摄像头灯亮却黑屏问题
查看>>