1.文件的编写
运行后,如果文件存在,就直接写入内容,若是文件不存在,则创建一个文件
package hdfsapi;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Scanner;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.Progressable;
public class Demo1 {
public static void main(String[] args) throws InterruptedException {
FSDataOutputStream fdos=null;
Scanner sc=null;
try {
//创建要链接的资源地址
URI uri=new URI("hdfs://192.168.244.129:9000"); //这里的ip是在hadoop目录下etc/hadoop/core-site.xml文件里的 fs.defaultFS 地址
//创建配置文件对象
Configuration conf=new Configuration();
conf.set("dfs.replication", "1");//设置副本数 1
//获取文件系统实例
FileSystem fs=FileSystem.get(uri,conf,"cc"); //登录的用户 --我这里登录的是cc
//创建一个路径
Path path=new Path("/user/cc/test.txt"); //相当于java中的File类
if(fs.exists(path)){//判断这个路径在文件系统中是否存在
System.out.println("文件存在...");
path=new Path(path.getName()+"_"+System.currentTimeMillis());
}else{
System.out.println("文件不存在...");
}
//创建文件
fdos=fs.create(path,new Progressable(){
@Override
public void progress(){
System.out.println(">>>");
}
});
sc=new Scanner(System.in);
System.out.println("请输入您要写入的内容");
String line=sc.nextLine();
fdos.write(line.getBytes());
fdos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(fdos!=null){
try {
fdos.close();
} catch (IOException e) {
// TODO Aut