import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class TestRead {
/**
* @param args
* @throws Throwable
*/
public static void main(String[] args) throws Throwable {
String path = args[0];
String confFile = args[1];
Configuration conf = new Configuration();
FileInputStream fis = new FileInputStream(confFile);
conf.addResource(fis);
FileSystem fileSystem = FileSystem.get(conf);
FSDataInputStream fs = fileSystem.open(new Path(path));
BufferedReader bis = new BufferedReader(new InputStreamReader(fs,"GBK"));
FileWriter fos = new FileWriter(args[2]);
BufferedWriter bw = new BufferedWriter(fos);
String temp;
int i=0;
while ((temp = bis.readLine()) != null) {
bw.write(temp);
System.out.println(temp);
if(temp.startsWith("</doc>")) {
break;
}
if(temp.indexOf("上海") > -1) {
System.out.println("发现你了 coming");
break;
}
}
bw.close();
bis.close();
fileSystem.close();
}
}
需要注意的几点:
1:读写file最好都用BufferedXXX
2:如果是读取byte 写文件,不存在字符集问题
3:如果是读取字符请注意 字符集编码问题,例如我是设置读取GBK编码
InputStreamReader(fs,"GBK")
分享到:
相关推荐
该 API 包括了 open、read、write、close 等方法,用于读写 HDFS 文件。 使用 HDFS API 可以实现以下操作: 1. 上传本地文件:使用 FileSystem.copyFromLocalFile() 方法将本地文件上传到 HDFS。 2. 下载 HDFS ...
在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...
为了高效地与HDFS交互,Java API 提供了一套丰富的工具和类库,使得开发者能够方便地进行文件的读写、上传、下载、遍历、查找、拷贝以及管理HDFS上的文件和目录。以下将详细讲解如何使用Java API 操作HDFS。 ### 一...
实验报告“云计算技术实验报告四HDFS文件的读写”主要涵盖了如何在Hadoop的分布式文件系统(HDFS)上进行文件操作,包括文件的上传和下载,以及文件的合并。该实验是针对计算机科学专业的《云计算技术》课程设计,...
HDFS FS API 是Hadoop提供的用于与HDFS进行交互的一组Java接口和类,允许程序员进行文件的读写操作、目录管理等。下面我们将深入探讨这些API的使用方法。 1. 获取HDFS实例或对象: 在Hadoop中,我们通常通过`...
5.1 MapReduce:在MapReduce程序中,`InputFormat`和`OutputFormat`类通过HDFS Java API读写输入输出数据。 5.2 Spark:Spark作业通过`SparkContext`与HDFS交互,读取和写入数据。 5.3 自定义服务:开发基于Hadoop的...
实验目的是通过一系列操作,让学生全面理解HDFS的架构、文件存储原理以及数据读写流程。 一、HDFS体系架构 HDFS由NameNode、DataNode和SecondaryNameNode等关键组件构成。NameNode作为元数据管理节点,负责文件系统...
在大数据处理领域,...在实际应用中,你可能需要处理异常,优化错误处理,并根据具体需求进行更复杂的操作,比如读写文件、检查文件是否存在等。通过熟练掌握HDFS的Java API,你可以构建出强大的数据处理应用程序。
在Java程序中操作HDFS文件主要依赖于`org.apache.hadoop.fs.FileSystem`类,该类提供了许多方法用于执行文件系统操作,如创建文件、删除文件、读写文件等。 ##### 1. 创建文件系统实例 ```java Configuration conf ...
这个模块提供了一个简单易用的API来执行读写操作。以下是如何使用`pyhdfs`进行文件操作的示例: 1. **文件读取**: - 首先,需要导入`HdfsClient`,指定HDFS的地址和端口,例如:`client = HdfsClient(hosts='ghym...
HDFS Java API是开发人员与HDFS进行通信的主要接口,它提供了丰富的类和方法,使得在Java程序中读写HDFS文件变得简单易行。 首先,我们需要导入Hadoop的相关库。在Java项目中,确保你的`pom.xml`或`build.gradle`...
本节课程主要介绍 HDFS 的概念、HDFS 存储架构和数据读写流程、HDFS 的 Shell 命令、Java 程序操作 HDFS、Hadoop 序列化、Hadoop 小文件处理、通信机制 RPC 等知识点。 HDFS 概念 HDFS(Hadoop Distributed File ...
这些JAR包包含了Hadoop的客户端API,使得开发者能够在Java应用程序中实现对HDFS的读写和其他文件管理操作。 HDFS的IO操作API主要包括以下关键类和接口: 1. **FileSystem**: 这是所有文件系统操作的基础接口,包括...
HDFS的核心API提供了一组接口,允许应用程序读写文件系统。 在Web中操作HDFS,我们需要一个中间层来连接HDFS和Web客户端。这个中间层通常是一个服务器端的应用程序,例如这个demo中的jsp应用。它通过Java的Hadoop ...
在这个"【IT十八掌徐培成】Hadoop第03天-03.hdfs FileSystem API.zip"压缩包中,他主要探讨了Hadoop的分布式文件系统(HDFS)的FileSystem API,这是Hadoop编程中的重要部分。 HDFS是Hadoop的核心组件,设计为高度...
在本实验中,我们将探讨如何利用Hadoop的分布式文件系统(HDFS)和FTP协议进行文件的存储与迁移。这个"基于HDFS+FTP的文件存储与迁移实验代码.zip"包含了一个名为"HDFS_FTP_ForMyProject-master"的项目源码,这为...
总之,使用Hadoop的Java API上传文件到HDFS是一个相对简单的过程,主要涉及配置、文件系统的获取、目录检查以及数据的读写操作。理解这些概念和步骤对于任何处理Hadoop相关任务的开发人员都至关重要。
3. **客户端(Client)**:用于与HDFS交互,提供API让用户进行文件的创建、删除、重命名等操作,同时也负责将文件分割成块,并上传到DataNode。 #### 三、HDFS文件系统的数据读写 HDFS设计之初就考虑到了大规模数据...
例如,`FileSystem`类用于打开、关闭和管理文件系统,`FSDataInputStream`和`FSDataOutputStream`分别用于读写文件。 2. **文件上传**:在SpringMVC中,我们可以使用`@RequestParam`注解捕获HTTP请求中的文件,然后...