hdfs文件读写代码
时间: 2024-06-11 20:02:17 浏览: 109
HDFS(Hadoop Distributed File System)是一个分布式文件系统,它的设计就是为了能够在通用硬件上运行,同时提供高吞吐量的数据访问。下面是HDFS文件读写的一些Java代码示例:
1. 读取文件
```java
// 获取Hadoop配置信息
Configuration conf = new Configuration();
// 构造一个HDFS文件系统对象
FileSystem fs = FileSystem.get(URI.create("hdfs://localhost:9000"), conf);
// 构造一个输入流,用于读取文件内容
Path inFile = new Path("/user/hadoop/input/test.txt");
FSDataInputStream in = fs.open(inFile);
// 读取文件内容
byte[] buffer = new byte[1024];
int bytesRead = in.read(buffer);
while (bytesRead > 0) {
System.out.println(new String(buffer, 0, bytesRead));
bytesRead = in.read(buffer);
}
// 关闭输入流
in.close();
```
2. 写入文件
```java
// 获取Hadoop配置信息
Configuration conf = new Configuration();
// 构造一个HDFS文件系统对象
FileSystem fs = FileSystem.get(URI.create("hdfs://localhost:9000"), conf);
// 构造一个输出流,用于写入文件内容
Path outFile = new Path("/user/hadoop/output/test.txt");
FSDataOutputStream out = fs.create(outFile);
// 写入文件内容
out.write("Hello, World!".getBytes());
// 关闭输出流
out.close();
```
3. 检查文件是否存在
```java
// 获取Hadoop配置信息
Configuration conf = new Configuration();
// 构造一个HDFS文件系统对象
FileSystem fs = FileSystem.get(URI.create("hdfs://localhost:9000"), conf);
// 检查文件是否存在
Path path = new Path("/user/hadoop/input/test.txt");
boolean exists = fs.exists(path);
System.out.println("File exists: " + exists);
```
阅读全文