java访问本地文件_java 读取本地文件实例

本文提供了两个Java代码实例,分别演示了如何在本地读取文件以及使用Hadoop的FileSystem API遍历目录。第一个示例展示了如何使用File, FileInputStream和InputStreamReader读取GBK编码的ini配置文件。第二个示例展示了如何通过Hadoop的FileSystem接口访问HDFS,列出目录内容并打印文件长度。
摘要由CSDN通过智能技术生成

在java中读取文件我们会要用到java.io.File,java.io.FileInputStream,java.io.InputStreamReader等一下库文件了,下面我找了两个java读取本地文件的实例,各位朋友可参考。

例1

读取本地例子,出现错误自己去寻找相应的jar包!

 代码如下复制代码

package loginQQ;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

public class LoadingRead {

/**

* 读取配置文件

*/

public static void main(String[] args) {

String endcode = "GBK";

File file = new File("D:/Java/YT/src/com/YT/auto/word.ini");

InputStreamReader in = null;

StringBuffer pzFile = new StringBuffer();

try{

if(file.isFile() && file.exists()){//判断是否有文件

//避免汉字编码问题

in = new InputStreamReader(new FileInputStream(file) , endcode);

BufferedReader buffer = new BufferedReader(in);

String lineText = null;

while((lineText = buffer.readLine()) != null){

pzFile.append(lineText);

}

System.out.println(pzFile);

}else{

System.out.println("抱歉哦,没有找到ini文件");

}

}catch (Exception e) {

e.printStackTrace();

}

}

}

例2

 代码如下复制代码

package my.test;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataInputStream;

import org.apache.hadoop.fs.FSDataOutputStream;

import org.apache.hadoop.fs.FileStatus;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

/**

*

* @author zhouhh

* @date 2013.3.14

* merge files to hdfs

*/

public class testhdfspaths {

public static void main(String[] args) throws IOException {

String sourceFile = "";

String targetFile = "";

if (args.length < 2) {

sourceFile = "/home/zhouhh/test";

targetFile = "hdfs://hadoop48:54310/user/zhouhh";

} else {

sourceFile = args[0];

targetFile = args[1];

}

Configuration conf = new Configuration();

FileSystem hdfs = FileSystem.get(conf);

FileSystem local = FileSystem.getLocal(conf);

try {

visitPath(local,sourceFile);

visitPath(hdfs,targetFile);

} catch (IOException e) {

e.printStackTrace();

}

}

public static void visitPath(FileSystem fs,String path) throws IOException

{

Path inputDir = new Path(path);

FileStatus[] inputFiles = fs.listStatus(inputDir);

if(inputFiles==null)

{

throw new IOException(" the path is not correct:" path);

}

System.out.println("----------------path:" path "----------------");

for (int i = 0; i < inputFiles.length; i ) {

if(inputFiles[i].isDir())

{

System.out.println(inputFiles[i].getPath().getName() " -dir-");

visitPath(fs,inputFiles[i].getPath().toString());

}

else

{

System.out.println(inputFiles[i].getPath().getName() ",len:" inputFiles[i].getLen());

}

}

}

}

输出:

----------------path:/home/zhouhh/test----------------

HelloWorldApp.class,len:432

a.scm,len:99

jar -dir-

----------------path:file:/home/zhouhh/test/jar----------------

Test.jar,len:1040

name.txt,len:389211

jdk-6u38-linux-amd64.rpm,len:58727459

hbase_thrift.tar.gz,len:770987

src -dir-

...

----------------path:hdfs://hadoop48:54310/user/zhouhh----------------

README.txt,len:1399

a,len:0

fsimage,len:9358

gz -dir-

----------------path:hdfs://hadoop48:54310/user/zhouhh/gz----------------

abs.gz,len:309589

mytest.txt,len:20

output -dir-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值