java流读写_java流概述以及文件读写示例
1. 先分清楚是字节流还是字符流。
字节流:InputStream OutputStream
字符流:Reader Writer
字符流与字节流的区别是读取的单位长度不同,字节流读8字节,字符流读16字节,所以有中文时,就得用字符流。
2. 在字节/字符流基础上,又分为节点流和处理流
节点流:直接和数据源相连。
例如: FileInputStream FileOutputStream(字节流)
FileReader FileWriter(字符流)
处理流:顾名思义,就是处理在节点流上加了层处理,所以要有节点流才有处理流。
例如: BufferedInputStream BufferedOutputStream(字节流)
BufferedReader BufferedWriter(字符流)
3. 文件读写简单示例
import java.io.*;public classFileRead {public static void main(String[] args) throwsFileNotFoundException {
String filename= "file.txt";
String file_path= System.getProperty("user.dir")+ File.separator + "src" + File.separator +filename;
File file= newFile(file_path);if (!file.exists()){try{//创建文件
file.createNewFile();
FileWriter fll= newFileWriter(file);
BufferedWriter bf= newBufferedWriter(fll);
String a= "hellohello";
bf.write(a+"\r\n"+"niuniu");
bf.flush();
bf.close();
}catch(IOException e) {
e.printStackTrace();
}
}else{
FileInputStream in= null;/** 字节流read*/
//try {//in = new FileInputStream(file);//int b = in.read();//while (b != -1){//System.out.println((char)b);//b = in.read();//}//} catch (FileNotFoundException e) {//e.printStackTrace();//} catch (IOException e) {//e.printStackTrace();//}finally {//try {//in.close();//} catch (IOException e) {//e.printStackTrace();//}
/** 字符流read*/
try{//直接上字符流
FileReader rd = newFileReader(file);
BufferedReader br0= newBufferedReader(rd);//从字节流转为字符流
in = newFileInputStream(file);
InputStreamReader reader= newInputStreamReader(in);
BufferedReader br= newBufferedReader(reader);try{
String line;
line=br.readLine();while (line != null){
System.out.println(line);
line=br.readLine();
System.out.println(br0.readLine());
}
}catch(IOException e) {
e.printStackTrace();
}
}finally{try{
in.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
}
}
4. 随机存取
/*
* 将内容追加到文件末尾
*/
try{//打开一个随机访问文件流,按读写方式
RandomAccessFile randomFile = new RandomAccessFile(System.getProperty("user.dir") + File.separator + "file.txt", "rw");//文件长度,字节数
long fileLength =randomFile.length();//将写文件指针移到文件尾。
randomFile.seek(fileLength);//在文件末尾加上Task_ID
randomFile.writeBytes((","+Task_ID));
randomFile.close();
}catch(IOException e) {
e.printStackTrace();
}
/*
* 随机访问文件
*/
public static void readFileByRandomAccess(String fileName) {
RandomAccessFile randomFile = null;
try {
// 打开一个随机访问文件流,按只读方式
randomFile = new RandomAccessFile(fileName, "r");
// 文件长度,字节数
long fileLength = randomFile.length();
// 读文件的起始位置
int beginIndex = (fileLength > 4) ? 4 : 0;
// 将读文件的开始位置移到beginIndex位置。
randomFile.seek(beginIndex);
byte[] bytes = new byte[10];
int byteread = 0;
// 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。
while ((byteread = randomFile.read(bytes)) != -1) {
System.out.write(bytes, 0, byteread);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (randomFile != null) {
try {
randomFile.close();
} catch (IOException e1) {
}
}
}
}
java流读写_java流概述以及文件读写示例相关推荐
- java文件流写入文件_JAVA 输入输出流 本地文件读写
今天学了一下Java的文件的读写. 流名为什么名字都这么长???? 这让我咋么记? 今天我想实现的功能是基本的文件操作,从输入in文件里读取数据,然后程序处理之后输出到out输出文件中,以助于ACM中 ...
- java流实例_java流汇总以及使用实例
流 一.基本概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络) 读入到内存中,形成了流,然后将这些流还可以写到另外的目的 ...
- C++文件流:myfstream,fstream,文件读写,随机文件读写【C++文件流】(59)
文件流 myfstream fstream Test myfstream fstream 流对象的定义 流对象关联文件 open 函数 打开方式 关闭流对象 文件读写 读写文本文件 读写接口 读一字/ ...
- java gui 读取文件夹_java Swing GUI 入门-文件读写器
java Swing GUI 入门-文件读写器 觉得有用的话,欢迎一起讨论相互学习~ 首先创建一个独立的窗口 public CoupPad(){} public static void main(St ...
- java 流计算_JAVA流式计算
JAVA流式计算 流的简单介绍 Java 8 中,引入了流(Stream)的概念,利用提供的Stream API,我们可以方便的操作集合数据,这种方式很类似于使用SQL对数据库的操作. 如何生成流 利 ...
- qmediaplayer获取流类型_Java 流API
流相关的接口和类在java.util.stream包中. AutoCloseable接口来自java.lang包. 所有流接口从继承自AutoCloseable接口的BaseStream接口继承. A ...
- java文本压缩算法_java 什么算法压缩文件最小
展开全部 有三种方式实现java压缩: 1.jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称32313133353236313431303231363 ...
- JAVA解析stp格式模型_3D模型文件读写.Net SDK
AnyCAD .Net/C++ SDK支持多种3D/2D文件格式,比如BREP.STEP.IGES.STL.DXF.3DS.OBJ.FBX.SKP.IFC.DAE--等,根据使用场景提供不同的API. ...
- java 如何导出json文件_java导出json格式文件的示例代码
本文介绍了java导出json格式文件的示例代码,分享给大家,具体如下: import java.io.File; import java.io.FileWriter; import java.io. ...
最新文章
- [导入]实时数据库的经典书
- 运维监控系统——使用API在zabbix监控系统中查看,创建及删除监控主机
- 解决SecureCRT中文显示乱码
- 关于MVC项目目录结构调整的想法
- 【2018.3.31】模拟赛之一-ssl2406 约数【水题】
- 如何保证消息队列的高可用?透彻分析源码
- 在Asp.net MVC使用jqGrid--代码少点再少点
- 中台生态的形成:全面解读技术、研发、移动中台建设
- 软件测试需要哪些c语言基础知识,测试人员都需要了解哪些redis知识?
- java 睡眠_Java 线程和多线程执行过程分析
- 常用的ajax的代码
- 死磕jdk源码之如何注释
- 用计算机检索生物学文献,文献检索期末复习
- 电商后台管理系统——商品管理
- 神仙打架!Python web框架大比拼,哪个学习成本低?
- linux下使用ls命令时遇到的一个怪异现象
- 11年电赛综合测评——单运放三角波发生器
- [转]铁路客车列车座位分布
- java 用户态_内核启动用户态的程序 - 但行好事 莫问前程 - JavaEye技术网站
- 数据连接池contect.xml配置
热门文章
- k8s-自动横向伸缩pod 根据CPU使用率,QPS访问数监控指标
- 计算机存储数字,计算机是如何存储数字的
- mac利用vscode运行c语言程序,Mac下使用VScode编译配置C/C++程序详细图文教程
- build 之前执行task_浅谈VS编译自定义编译任务—MSBuild Task(csproject)-阿里云开发者社区...
- div和div之间画横线_javascript – jQuery – 使用画布在div之间绘制线条
- docker privileged作用_docker总结
- 利用代码分别实现jdk动态代理和cglib动态代理_代理模式实现方式及优缺点对比...
- mysql按中文拼音字母排序_解析MySQL按常规排序、自定义排序和按中文拼音字母排序的方法...
- dataTable删除行
- 常用MIME类型,解决IIS布署后字体文件、mp4视频文件等not found 的错误