Java中文件读写

Java读写hdfs中的文件 前言 hdfs全称hadoop分布式文件系统,是Apach Hadoop的核心子项目。hdfs适合运行在通用硬件上,其在开源大数据技术体系中地位无可替代。 这篇文章记录了用Java读写hdfs中文件的全过程。 搭建hadoop集群 第一步就是要搭建hadoop集群,让hadoop集群能够成功运行。笔者是在windows环境搭建了hadoop 2.7.7,具体步骤参见:Windows下配置Hadoop环境(全过程) 这篇文章写得十分详细,对流程不再赘述,以下只列出几点原作者没有提到的问题: tmp文件夹可 阅读详情

IO类图如下:(重要记住)


1.File类

①File类对文件系统进行操作。

②File类与FileInputStream类的区别:流类关注的是文件内容,而File类关注的是文件在磁盘上的存储。

字节流读出的是byte[],字符流读出的是char或String。

2. 流程

file(内存)-->输入流-->程序-->输出流-->file(内存)

当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader、InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader,它是字节转换为字符的桥梁。

例:

package fileDemo;

import java.io.BufferedReader;
import java.io.FileReader;

public class Main_file {

	public static void main(String[] args) {
		FileReader fr;
		BufferedReader br;
		String s;
		String []sArray;
		try {
			fr = new FileReader("f:\\1a.txt");
			br = new BufferedReader(fr);
			s = br.readLine();
			sArray = s.split("\\s+");
			for(int i=0;i<sArray.length;i++){
				System.out.println(sArray[i]);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

备注:

①为了达到更高的效率,可以考虑在BufferedReader内包装InputStreamReader。例如:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

②最后要记得输入输出流的关闭;

3. RandomAccessFile类

Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方。这就是“Random”的意义所在。

RandomAccessFile的对象包含一个记录指针,用于标识当前流的读写位置,这个位置可以向前移动,也可以向后移动。RandomAccessFile包含两个方法来操作文件记录指针。

long getFilePoint():记录文件指针的当前位置。

void seek(long pos):将文件记录指针定位到pos位置。

RandomAccessFile包含InputStream的三个read方法,也包含OutputStream的三个write方法。同时RandomAccessFile还包含一系列的readXxx和writeXxx方法完成输入输出。

但该类的读写速率较其他的慢很多。

例:

package fileDemo;

import java.io.File;
import java.io.RandomAccessFile;

public class Main_file {

	public static void main(String[] args) {
		File file = new File("f:\\1a.txt");
		RandomAccessFile randomFile = null;
		try {
			randomFile = new RandomAccessFile(file, "r");
			long fileLength = randomFile.length();
			int beginIndex = fileLength>4?4:0;
			randomFile.seek(beginIndex);
			byte[] bytes = new byte[10];
			int byteread = 0;
			while((byteread=randomFile.read(bytes))!=-1){
				System.out.write(bytes,0,byteread);
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		} finally{
			if(randomFile!=null){
				try{
					randomFile.close();
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}
	}
}

4. 创建目录或文件

4.1 判断文件夹是否存在,不存在创建文件夹

File file =new File(path+filename);   
//如果文件夹不存在则创建   
if  (!file .exists())     
{     
    file .mkdir();   
}     

4.2 判断文件是否存在,不存在创建文件

File file=new File(path+filename);   
    if(!file.exists())   
    {   
        try {   
            file.createNewFile();   
        } catch (IOException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }    

参考:http://blog.youkuaiyun.com/jiangxinyu/article/details/7885518/

java文件读写 java文件读写,这是本人总结的java读写文件的一下操作 java文件读写,这是本人总结的java读写文件的一下操作 java文件读写,这是本人总结的java读写文件的一下操作 立即下载

相关推荐

R语言TCGA数据下载避坑指南:biolinks包实战中的5个常见错误与解决方案

本文详细介绍了使用R语言的TCGAbiolinks包下载TCGA数据时常见的5个错误及其解决方案,包括安装与加载问题、查询构建参数设置、下载中断处理、数据加载格式不匹配以及版本兼容性问题。通过实战案例和代码示例,帮助生物信息学研究者高效获取TCGA数据,避免常见陷阱。

weixin_30892037的博客 84

java io流

写文本文件: import java.io.*; /* * 写入到D盘一个文本文件,并往里写入若干行文字。 *如果该次磁盘下有重复的内容,则删除重复的内容后再写入一个新的内容。 */ public class TestWriteText{ public static void main(String[] args){ //创建一个File的实例对象 File file=n

小强签名设计 的博客 1416

[官方培训]19-物理模拟 Epic 肖月 笔记

物理引擎全局解算精度的设置,帧率越高,子步越多得到的模拟结果就越精确。引擎默认情况下是以变化的帧率运行的,但是对于Chaos物理引擎来说。一般子步越小,帧率越固定,效果就会更好更稳定一些。图示的分步选项就是依据下方的最长子步时长和最大步数对动态变化的帧率,进一步的做拆分来保证物理效果。对于影视项目建议都开启分步选项。红色框内有三个迭代次数的设置,这是Chaos基于位置的约束求解算法专用的一个设置,可以简单理解为迭代次数越高,当前帧一个子步内得到的结果就越精确。

Tcohneyn的博客 1545

Java的文件读写操作

file(内存)----输入流---->【程序】----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编

jiangxinyu的专栏 30万+

STM32:TTL串口调试

TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。

superSmart_Dong的博客 5635

如何用python开发“跳一跳”游戏【附源码】

jump_start_time = pygame.time.get_ticks() # 记录跳跃开始时间。jump_duration = current_time - jump_start_time # 计算跳跃持续时间。current_time = pygame.time.get_ticks() # 获取当前时间。jump_velocity = -15 # 设置跳跃的初始速度。# 如果小球跳跃结束,重置跳跃状态。# 根据跳跃持续时间计算跳跃高度。# 移除超出屏幕的障碍物。

helloshili2011的博客 2495

Java文件读取与写入的几种方式

文集你的数据的读取与写入

laterstage的博客 5642

【黑马-产品经理入门基础课笔记】01.认识产品经理

问题定义 ==> 可行性研究 ==> 需求分析。

2401_88466092的博客 1841

Java进阶篇之文件的读取和写入

文件的读取与写入操作是Java开发中的基础且重要的一环。从传统的字节流与字符流到高级的缓冲流与NIO,每种技术都有其适用场景和优缺点。在实际开发中,合理选择合适的IO方式、严格管理资源、妥善处理异常,能够有效提高应用程序的稳定性和性能。如果您在使用过程中有任何疑问或想分享自己的经验,欢迎在评论区交流讨论!在接下来的文章中,我们将继续探讨Java中的序列化和反序列化以及其他重要特性,敬请期待!

code2cat的博客 2703

Qt入门教程【基础控件篇】QLineEdit输入框

QLineEdit输入框

小鱼酱的博客 3261

深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了。CNN是一种能够有效处理图像和其他二维数据的深度学习模型。在传统的CNN中,每个卷积核都会对输入的所有位置进行相同的操作,这可能导致网络无法针对特定区域或特征进行更加关注和重点处理。 注意力机制被引入卷积神经网络中,旨在使网络能够自动地学习和聚焦于输入中的重要区域或特征。通过引入注意力机制,可以增强网络对不同区域或特征的关注度,提取更有意义和相关的特征,从而提高模型的性能和表达能力。

微学AI的博客 3313

java 文件读取和写入

1.文件名 1.InputStream(字节流) 和Reader(字符流) 2.OutputStream(字节流) 和 Writer(字符流)

AgoniTop的博客 1万+

LeRobot 入门教程(二)强化学习训练及 SmolVLA 模型微调

本文介绍了LeRobot框架中基于人类在环的样本高效强化学习(HIL-SERL)工作流,包含真实机器人训练和模拟环境训练两大模块。在真实机器人部分,详细说明了从配置设置、工作空间边界确定、演示数据收集、奖励分类器训练到演员-学习者架构部署的全流程,并强调了人类干预的关键作用。同时介绍了适用于模拟训练的gym_hil环境及其配置使用方法。最后,文章提供了微调SmolVLA基础模型的指南,包括数据集收集、微调步骤和模型评估方法。该工作流实现了人机协作的高效强化学习,适用于各类机器人操作任务。

2506_90492529的博客 3896

Java实现本地读写文件

教程目录0x00 教程内容0x01 写本地文件1. 完整代码0x02 读本地文件1. 完整代码0xFF 总结 0x00 教程内容 写本地文件 读本地文件 0x01 写本地文件 1. 完整代码 a. 代码 package com.shaonaiyi.local; import java.io.File; import java.io.FileOutputStream; /** * Java...

邵奈一的博客 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java文件读写操作

Java中I/O流对文件的读写有很多种方法,在这里我主要介绍三种方式,供大家参考。 第一种方式:使用FileWriter和FileReader,对文件内容按字符读取,代码如下 String dir = "E:\\soft\\aaa\\a.txt"; File file = new File(dir); //如果文件不存在,创建文件 if (!file.exists()) file.c...

xujia的博客 3万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java文件的读写

java文件读写

m0_50744075的博客 5069

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java读写文件的几种方式

前言 Java中读写文件是非常基本的IO操作了,现在总结一下常见的用法。首先总结一下读取文件的步骤: 根据文件的路径获取到文件File对象 将File对象转换成输入流InputStream 将输入流读出来,读的时候Java提供了相应的Reader类 文件流读完之后一定要关闭。 注意:本文文件的字符集都是UTF-8,如果需要字符集转换的请自行处理。 一:字节流读取方式 一般字节流读取方式用在读取图片或者固定格式文件的方式。 如果是一次读取一个字节方式可以用如下方法: /** * 以字

u011047968的专栏 5936

Java中的文件读写

1.文件读写相关的类 (1) java.io.InputStream: 抽象类,输入字节流,可以将本输入流中的字节读取出来。   主要方法: void read(byte[] b):从输入流中读取一定数量的字节,将其存储在缓冲区数组b中。   (2) java.io.OutputStream: 抽象类,输出字节流,可以接收待输出的字节并将这些字节发送到某个接收器。      主要方法:

wangjia55的专栏 7632

java基础之读写文件

1.覆盖写入 package javaDemoOne; import java.io.*; import java.util.Scanner; /** * java读写文件 创 写 关 */ public class Demo01 { public static void main(String[] args) throws IOException { //1.创建一个FileW...

qq_28979869的博客 7841

java 内存读写文件_Java的文件读写操作

file(内存)----输入流---->【程序】----输出流---->file(内存)当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编...

weixin_30271235的博客 1506

Java 读写一个文件

字符流读写文件、字节流读写文件

lfm1010123的博客 816

【Java】Java文件读写

两类文件读写方法

zgsdlr的博客 1034

Java IO读写文件总结——文件随机读写,顺序读写!

顺序IO和随机IO 对于磁盘的读写分为两种模式,顺序IO和随机IO。 随机IO存在一个寻址的过程,所以效率比较低。而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率很高。 网上盗了一个图(侵权删) Java中的随机读写 在Java中读写文件的方式有很多种,先总结以下3种方法: FileWriter和FileReader public static void fileWrite(String filePath, String content) { .

zhangkaixuan456的博客 6630

java中文件的读写

在java中,输入串流的代表对象为java.io.InputStream实例,输出串流的代表对象为java.io.OutputStream的实例。无论数据源或目的地为何,只要设法取得InputStream或OutputStream的实例,接下来的操作输入/输出的方式都是一致的,无须理会来源或目的地的真正形式。 FileInputStream和FileOutputStream用来操作文件,分别继承...

zhiyuanjiang的博客 3259

Java随机读写文件

本文介绍了Java中的文件随机读写类RandomAccessFile。RandomAccessFile类定义在java.io包中,它与InputStream和OutputStream类在一个层次,是Object类的直接子类。RandomAccessFile类支持文件任意位置的读取而不只是顺序读取。

hitmengfanchao的博客 1387
上一篇: Java中类及方法的加载顺序
下一篇: Dijkstra(迪杰斯特拉)算法
hellorichen
博客等级 码龄13年 199粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值