zoukankan      html  css  js  c++  java
  • 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾。

     1 import java.io.FileInputStream;
     2 import java.io.IOException;
     3 import java.text.SimpleDateFormat;
     4 import java.util.Scanner;
     5 
     6 import org.apache.hadoop.conf.Configuration;
     7 import org.apache.hadoop.fs.FSDataInputStream;
     8 import org.apache.hadoop.fs.FSDataOutputStream;
     9 import org.apache.hadoop.fs.FileSystem;
    10 import org.apache.hadoop.fs.Path;
    11 
    12 public class H_AppendorBefore {
    13     public static void DelFile(FileSystem fs, Path p_remotepath) {
    14         try {
    15             if (fs.delete(p_remotepath, true)) {
    16                 ;
    17             }
    18         } catch (Exception e) {
    19             e.printStackTrace();
    20         }
    21         
    22     }
    23 
    24     public static void appendToFileBefore(FileSystem fs, String localFilePath,
    25             String remoteFilePath) {
    26         Path remotePath = new Path(remoteFilePath);
    27 
    28         try {
    29             FileInputStream in_local = new FileInputStream(localFilePath);
    30             FSDataInputStream in_remote = fs.open(remotePath);
    31             DelFile(fs, remotePath);
    32             FSDataOutputStream out = fs.create(remotePath);
    33             out.close();
    34             out = fs.append(remotePath);
    35             byte[] data = new byte[1024];
    36             int read = -1;
    37             while ((read = in_local.read(data)) > 0) {
    38                 out.write(data, 0, read);
    39             }
    40             while ((read = in_remote.read(data)) > 0) {
    41                 out.write(data, 0, read);
    42             }
    43             out.close();
    44             System.out.println("write_before success");
    45         } catch (IOException e) {
    46             e.printStackTrace();
    47         }
    48     }
    49 
    50     public static void appendToFile(FileSystem fs, String localFilePath,
    51             String remoteFilePath) {
    52         Path remotePath = new Path(remoteFilePath);
    53         try {
    54             FileInputStream in = new FileInputStream(localFilePath);
    55             FSDataOutputStream out = fs.append(remotePath);
    56             byte[] data = new byte[1024];
    57             int read = -1;
    58             while ((read = in.read(data)) > 0) {
    59                 out.write(data, 0, read);
    60             }
    61             out.close();
    62             System.out.println("write_append success");
    63         } catch (IOException e) {
    64             e.printStackTrace();
    65         }
    66     }
    67 
    68     public static void main(String[] args) {
    69         try {
    70             Var_init var = new Var_init();
    71             Scanner sc = new Scanner(System.in);
    72             System.out.println("input wa to write_append, wb to write_before");
    73             String str = sc.next();
    74             if (str.equals("wa")) {
    75                 appendToFile(var.fs, var.s_localFilePath, var.s_remoteFilePath);
    76             } else if (str.equals("wb")) {
    77                 appendToFileBefore(var.fs, var.s_localFilePath,
    78                         var.s_remoteFilePath);
    79             }
    80         } catch (Exception e) {
    81             e.printStackTrace();
    82         }
    83     }
    84 
    85 }
    View Code

    Var_init类参考 https://www.cnblogs.com/MiraculousB/p/13848744.html

  • 相关阅读:
    Flink 的datastreamAPI 以及function函数的调用,性能调优
    Spark Shuffle原理、Shuffle操作问题解决和参数调优
    Spark学习之JavaRdd
    Redis学习笔记--Redis数据过期策略详解==转
    Elasticsearch 数据搜索篇·【入门级干货】===转
    HBase二级索引的设计(案例讲解)
    C中指针符*和取址符&
    java 中,如何获取文件的MD5值呢?如何比较两个文件是否完全相同呢?
    Mysql数据库的加密与解密
    Lucene 分词
  • 原文地址:https://www.cnblogs.com/MiraculousB/p/13848898.html
Copyright © 2011-2022 走看看