java流读写_java流概述以及文件读写示例

1. 先分清楚是字节流还是字符流。

字节流:InputStream OutputStream

字符流:Reader Writer

字符流与字节流的区别是读取的单位长度不同,字节流读8字节,字符流读16字节,所以有中文时,就得用字符流。

343dbb5d8866e7b7b9d572a07ba8f30b.png

7c00d48bf37f8a4bcc3bc8d34cc7257c.png

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) {

}

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python自动化操作应用程序错误_web自动化中踩过的低级错误坑(python+selenium)

1.定位了元素没有做下一步操作,比如,点击、输入等功能,而报错,报错信息如下:2.上传图片时,定位元素,应该定位input标签,点击页面input标签肉眼没有看到定位到任何元素,以…

qgis折点打断_arcgis在折点处打断并建立网络分析(最短路径等问题)

目的:GIS网络分析用于对段路径等问题。这里仅仅讲述如何建立网络分析。网络建立前必须满足以下条件1.要素文件在节点处打断(本文下面会叙述)2.要素文件在地理数据库里的数据集里(一般是这样)3.要素文件包含的数据集里已经验证拓扑,并确保没有错误(可选)注…

base64 java php_利用PHP将图片转换成base64编码的实现方法

先来说一下为什么我们要对图片base64编码base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一。base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字符,不能直接传送&…

(BFS)Knight Moves(hdu1372)

题目: 在象棋王国,尼古拉斯.火山是一匹英俊的马,他非常幸运迎娶了白马王国的公主,他们将度蜜月,你现在是他们的女仆,火山会问你去一些地方最少需要多少步,这么简单的事当然难不倒你。由于火山是…

java上机作业要注意什么_Java第八次上机作业

1、请按照以下要求设计一个学生类Student,并进行测试。要求如下:1)Student类中包含姓名、成绩两个属性2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.3)Student类中定义一个无参的构造方法和一个接收两…

java windows 2008_Windows server 2008 R2 安装Java环境

一、配置环境操作系统软件包Windows server 2008 R2jdk_1.7.rar二、安装操作1.右击解压jdk_1.7.rar;解压后双击运行jdk-7u79-windows-i586 .exe2.点击【下一步】一直到有个【更改】按钮,可以更改安装路径,设置完成后点击“下一步”。到达这个…

java 匿名类型_Java之匿名类讲解

匿名类,正如名字一样在java中没有名字标识的类,当然了编译后还是会安排一个名字的。下面是一个关于匿名类的简单例子:public classClient {public static voidmain(String[] args) throws InterruptedException {Thread tnew Thread(newRunna…

(并查集)小希的迷宫

题目: 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B&…

(并查集)食物链

题目: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两…

多线程销售问题java_Java多线程Runable售票系统实现过程解析

一、无等待,直接出票【虽然解决了不会冲票问题,但显然不符合实际生活】:package com.thread.sale;public class Sale {public static void main(String[] args) {//悟,那么设计爬虫的时候,下载的资源唯一,使…

带权并查集-Building Block

题目&#xff1a; John are playing with blocks. There are N blocks (1 < N < 30000) numbered 1…N。Initially, there are N piles, and each pile contains one block. Then John do some operations P times (1 < P < 1000000). There are two kinds of ope…

(模拟+floyd)Saving James Bond

题目&#xff1a; This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land at the center of a lake filled with…

(dijkstra算法+多权值)最短路径问题

给你n个点&#xff0c;m条无向边&#xff0c;每条边都有长度d和花费p&#xff0c;给你起点s终点t&#xff0c;要求输出起点到终点的最短距离及其花费&#xff0c;如果最短距离有多条路线&#xff0c;则输出花费最少的。 Input 输入n,m&#xff0c;点的编号是1~n,然后是m行&am…

php 取经纬度,php根据地址获取百度地图经纬度的实例方法

首先我们来看全部实例代码&#xff1a;/*** param string $address 地址* param string $city 城市名* return array*/function getLatLng($address‘‘,$city‘‘){$result array();$ak ‘‘;//您的百度地图ak&#xff0c;可以去百度开发者中心去免费申请$url "http://…

php 留言板分页显示,php有分页的留言板,留言成功后怎么返回当前页?

比如我在【index.php?p3】发布留言&#xff0c;成功后怎么返回到 index.php?p3 这个页面&#xff1f;在【index.php?p5】发布留言成功后怎么返回index.php?p5这个页面&#xff1f;location.href"这里该怎么写&#xff1f;"涉及的页面有index.php&#xff0c;doac…

php class使用方法,PHP调试类Krumo使用教程

写程序最讨厌的是程序发生错误&#xff0c;但是却又不知道该从何debug起&#xff0c;我们通常会使用print_r 或者 var_dump 或者是 echo 慢慢的debug。如果你跟我一样使用PHP 5开发&#xff0c;现在可以使用Krumo这个简单好用的工具帮助我们做这件事情。虽然IDE也有内建的debug…

matlab 连接数组,matlab数组操作知识点总结

其实如果单从建模来讲&#xff0c;以下大部分函数都用不到&#xff0c;但是这些都是基础。第一点&#xff1a;数组与矩阵概念的区分数组&#xff1a;与其它编程语言一样&#xff0c;定义是&#xff1a;相同数据类型元素的集合。矩阵&#xff1a;在数学中&#xff0c;矩阵(Matri…

(组合数求模=乘法逆元+快速幂) Problem Makes Problem

题目&#xff1a; As I am fond of making easier problems, I discovered a problem. Actually, the problem is ‘how can you make n by adding k non-negative integers?’ I think a small example will make things clear. Suppose n4 and k3. There are 15 solutions.…

(小费马定理降幂)Sum

题目&#xff1a; 分析与解答&#xff1a; 参考思路&#xff1a; https://www.cnblogs.com/stepping/p/7144512.html https://blog.csdn.net/strangedbly/article/details/50996908 根据隔板定理&#xff0c;把N分成一份的分法数为C(1,n-1)&#xff0c; 把N分成两份的分法…

matlab 参数识别,[转载]自编最小二乘法的Matlab参数辨识程序(含实例)

function [sysd,sys,err] ID(Y,U,Ts)%%基于递推最小二乘法的参数辨识程序%仅针对二阶系统&#xff1a;)%出处&#xff1a;http://blog.sina.com.cn/xianfa110%---------------%Inputs:%---------------%Y nX1 vector of your model output%U nX1 vector of your model input…