用bufferedreader bufferednfcwriter教程制作一个读取文件的方法读入文件为read.txt,写入文件为write.txt.

Java I/O流之BufferedReader实现读取文件
public class TestBufferedReader2 {
public static void main(String[] args) throws Exception{
File file = new File("e:"+File.separator+"print.txt");
BufferedReader buf = new BufferedReader(new FileReader(file));
String str = null;
while((str=buf.readLine())!=null){
System.out.println(str);
buf.close();
JAVA处理流BufferedReader、BufferedWriter
Java中使用BufferedReader读取文件内容
Java对文本文件的读写操作【InputStreamReader/BufferedWriter】
[转]关于java中BufferedReader的read()及readLine()方法的使用心得
使用BufferedReader和BufferedWriter按行读写文件
BufferedWriter与BufferedReader读写大文件的简单尝试
java中向文本文件中读取数据之使用BufferedReader类
BufferedReader读取数据
BufferedReader的用法
BufferedReader读取文本文件
没有更多推荐了,黑马程序员 —— BufferedReader的readLine()方法
------- 、、期待与您交流! ----------
今天复习到写一个文本转化器,客户端发一行字符,服务端转为大写后发回来。
前一天我写的时候,还是没问题的:
import java.net.*;
import java.io.*;
public class TCP_Client {
public static void main(String[] args) throws Exception {
Socket tcpClientSocket = new Socket(InetAddress.getLocalHost(),
OutputStream out = tcpClientSocket.getOutputStream();
InputStream in = tcpClientSocket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
String s =
byte[] buf = new byte[1024];
int len = 0;
while ((s = br.readLine()) != null) {
if (s.equals("OVER")) {
out.write(s.getBytes());
System.out.println("...closing.");
Thread.sleep(3000);
out.write(s.getBytes());
len = in.read(buf);
System.out.println("Convert : " + new String(buf, 0, len));
tcpClientSocket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}import java.net.*;
import java.io.*;
public class TCP_Server {
public static void main(String[] args) throws Exception {
ServerSocket tcpServerSocket = new ServerSocket(10002);
Socket tcpClientSocket = tcpServerSocket.accept();
System.out.println(tcpClientSocket.getLocalAddress()
+ "...connected.");
OutputStream out = tcpClientSocket.getOutputStream();
InputStream in = tcpClientSocket.getInputStream();
byte[] buf = new byte[1024];
int len = 0;
while (true) {
len = in.read(buf);
String s = new String(buf, 0, len);
if (s.equals("OVER")) {
System.out.println("Get : " + s);
out.write((s.toUpperCase()).getBytes());
tcpServerSocket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
过了一天,我用缓冲区技术再做一次,就怎么都不行了,
每次都是客户端连接上后,输入一行字符就卡住了。
通过对比观察,才发现自己之前一直忽略的一个问题:
readLine() 读取一个文本行。
通过下列字符之一即可认为某行已终止:
换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。
因此,上面的方法我是用read()方法来读取,能够读到换行符号,
改为BufferedReader后用readLine()就不行了。
修改后代码如下:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws UnknownHostException,
IOException {
Socket tcpClientSocket = new Socket(InetAddress.getByName("localhost"),
BufferedReader keyIn = new BufferedReader(new InputStreamReader(
System.in));
BufferedReader readIn = new BufferedReader(new InputStreamReader(
tcpClientSocket.getInputStream()));
BufferedWriter writeOut = new BufferedWriter(new OutputStreamWriter(
tcpClientSocket.getOutputStream()));
String convertStr =
while ((convertStr = keyIn.readLine()) != null) {
if (convertStr.equals("OVER")) {
writeOut.write(convertStr);
writeOut.newLine();
writeOut.flush();
writeOut.write(convertStr);
writeOut.newLine();
writeOut.flush();
System.out.println("After:" + readIn.readLine());
tcpClientSocket.close();
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws UnknownHostException,
IOException {
ServerSocket tcpServerSocket = new ServerSocket(10004);
Socket tcpClientSocket = tcpServerSocket.accept();
BufferedReader readIn = new BufferedReader(new InputStreamReader(
tcpClientSocket.getInputStream()));
BufferedWriter writeOut = new BufferedWriter(new OutputStreamWriter(
tcpClientSocket.getOutputStream()));
String convertStr =
while (true) {
convertStr = readIn.readLine();
writeOut.write(convertStr.toUpperCase());
writeOut.newLine();
writeOut.flush();
主要看BufferedWriter和BufferedReader的配合使用,其他一些逻辑和操作缺少的请自动忽略。
感谢这个百度知道答案:
------- 、、期待与您交流! ----------
BufferedReader 中的readLine方法读不到内容的原因
BufferReader 的 readline 隔行读取的问题
使用bufferedreader 的readline()读取文件
BufferReader中的readLine()方法
Java从一个输入流每次读取一行:BufferedReader.readLine()
bufferedReader.readLine()读到最后发生阻塞问题
被readLine()折腾了一把
Android Studio——InputStreamReader和BufferedReader用法及真实案例
关于java中BufferedReader的read()及readLine()方法的使用注意
黑马程序员_学习笔记BufferedReader类的原理
没有更多推荐了,不论是技术还是生活,你遇到的每个困难,都是一次提升自己的机会。努力解决好每个困难,你将成为更优秀的自己...
Java中使用BufferedReader读取文件的好处
没有缓冲区时,每次读取操作都会导致一次文件读取操作(就是告诉操作系统内核我要读这个文件的这个部分,麻烦你帮我把它取过来)。
有缓冲区时,会一次性读取很多数据,然后按要求分次交给上层调用者。
读取块大小通常是按最适合硬件的大小来读的,因为对于硬件来说,一次读取一块连续数据(比如 1K)和一次读取一个字节需要的时间几乎是一样的(都是一次读操作,只是最终提交的数据量有差异)。带缓冲的 I/O 和不带缓冲的相比效率差异是非常显著的,你可以自行写程序测试。
说到java reader缓存, 其实有两层缓存:
OS缓存, 把磁盘数据 读入内存, 通过read ahead, io scheduler等减少磁盘读取次数.
App缓存, 做缓存/预读, 即BufferredReader的角色.
BufferredReader的作用, 我的理解, 一) 减少System Call次数; 二) 减少磁盘读取次数.
扫码向博主提问
加QQ群 免费提问
擅长领域:
spring boo
spring clo
Java中使用BufferedReader读取文件内容
java用BufferedReader读取utf-8文件时乱码
Java利用BufferedWriter和BufferedReader读写文本文件
Java I/O流之BufferedReader实现读取文件
Java使用bufferedreader解析txt文件
java中向文本文件中读取数据之使用BufferedReader类
java中讲讲BufferedReader的用法,举例?
java读取文件方法,bufferreader按行读取
使用BufferedReader和BufferedWriter按行读写文件
Java 读取文件
使用BufferReader出现中文乱码的解决办法
没有更多推荐了,Java中BufferedReader到底是一个什么类 - 简书
Java中BufferedReader到底是一个什么类
1、java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
2、从标准输入流System.in中直接读取使用者输入时,使用者每输入一个字符,System.in就读取一个字符。为了能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲。readLine()方法会在读取到使用者的换行字符时,再一次将整行字符串传入。
3、System.in是一个位流,为了转换为字符流,可使用InputStreamReader为其进行字符转换,然后再使用BufferedReader为其增加缓冲功能。例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
下面的示例示范了BufferedReader和BufferedWriter的使用。可以在文字模式下输入字符,程序会将输入的文字存储至指定的文件中,如果要结束程序,输入quit字符串即可。
mport java.util.*;
import java.io.*;
public class BufferedReaderWriterDemo {
public static void main(String[] args) {
//缓冲System.in输入流
//System.in是位流,可以通过InputStreamReader将其转换为字符流
BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in));
//缓冲FileWriter
BufferedWriter bufWriter = new BufferedWriter(new FileWriter(args[0]));
String input =
//每读一行进行一次写入动作
while(!(input = bufReader.readLine()).equals("quit")) {
bufWriter.write(input);
//newLine()方法写入与操作系统相依的换行字符,依执行环境当时的OS来决定该输出那种换行字符
bufWriter.newLine();
bufReader.close();
bufWriter.close();
} catch(ArrayIndexOutOfBoundsException e) {
System.out.println("没有指定文件");
} catch(IOException e) {
e.printStackTrace();
//运行后会在目录下产生一个文件test2.txt,并在其中写入刚才输入的内容。
物联网嵌入式软件开发 - 小学生
让坚持成为一种习惯,
让放弃成为一种奢侈。
- 柠檬树下等雪
IO(二)No19 【 缓冲流:内置了缓冲区,对现有的流对象进行了封装,实现了高效的读写操作并增强了功能 字节缓冲流 BufferedInputStream BufferedOutputStream 字符缓冲流 BufferedReader 特有方法:readLin...
概述: 1、IO流:即Input Output的缩写。 2、特点:1)IO流用来处理设备间的数据传输。2)Java对数据的操作是通过流的方式。3)Java用于操作流的对象都在IO包中。4)流按操作数据分为两种:字节流和字符流。5)流按流向分为:输入流和输出流。 注意:流只能...
百战程序员_ Java1573题 QQ群:034603 掌握80%年薪20万掌握50%年薪10万 全程项目穿插, 从易到难,含17个项目视频和资料持续更新,请关注www.itbaizhan.com 国内最牛七星级团队马士兵、高淇等11位十年开发经验专...
一、IO流整体结构图 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效...
转载至:http://blog.csdn.net/hguisu/article/details/N@E31OD~AR(XLQUN`CK_]6.gif](http://upload-images.jianshu.io/upload_images/26280...
-1- 小夏是我的前同事,一米六八的个子,一百来斤,大长腿。爱穿短裤,喜欢画妆。 记得她刚来公司的时候正值夏天,她穿着自己买的黑色工作裙,比我们的工作裙稍短一些,露出又细又直又白的大长腿。去食堂吃饭,直接秒杀一大批男同事和男客户。 办公室里十几个女人,眉毛都是找她修,要是出...
我晚上空闲时间拿来读书我努力学习 听古典乐听钢琴曲 努力减肥每晚肚皮都贴后背还死撑看吃播 也保持快乐的心情不停鼓励自己多开口说话 十二点之前睡觉 早上七点半起床保持饮食清淡偶尔也开荤 … 这就是我的全部生活 舍友 宿舍 b站 网易云 微博 知乎 图书馆 工作室 基友 充满了...
人无魂不立,国无魂不强。军无魂不壮,民无魂不刚。要实现中华民族的伟大复兴,首先应该是民族精神的伟大复兴。 中华民族近代史以来,因为落后贫困备受列强欺凌,1931年九一八事变日寇侵占东北,1937年七七事变日寇全面侵华,将中华民族的屈辱史推到了顶点。 中华热血男儿,义勇之士,...
都健身这么久了,如果你还不知道啥是BMI,真的有必要了解一下。 体质指数,又称BMI指数,BMI=体重/(身高*身高)。体质指数是目前国际上最常用的衡量人体胖瘦程度以及是否健康的一个标准,因此我们的个人体质指数将会更直观的反映出我们的身体体质水平。 “它是做啥的?” 怎么用...
今天要和大家讲述的是一个正在发生的体育故事,也是今年,甚至是近几年最为励志的体育传奇,我从去年就开始关注,今天正好是读书日,长文呈现给大家,不管你是不是关心体育,都可以了解一下。首发于个人微信公众号,禁止转载。 原文链接:今年最励志的故事,没有之一 【万字长文预警,建议先马...BufferedWriter 和 BufferedReader 的基本用法,附演示程序。以及一个复制文本文件的程序
BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以很效率比没有缓冲区的很高。
一、BufferedWriter 类
构造方法:bufferedWriter bf = new bufferedWriter(Writer out );
主要方法:void write(char ch);//写入单个字符。
void write(char []cbuf,int off,int len)//写入字符数据的某一部分。
void write(String s,int off,int len)//写入字符串的某一部分。
void newLine()//写入一个行分隔符。
void flush();//刷新该流中的缓冲。将缓冲数据写到目的文件中去。
void close();//关闭此流,再关闭前会先刷新他。
import java.io.BufferedW
import java.io.FileW
import java.io.IOE
public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("Buffered.txt");
fw.write("ok168");
fw.close();
* 为了提高写入的效率,使用了字符流的缓冲区。
* 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。
BufferedWriter bufw = new BufferedWriter(fw);
//使用缓冲区中的方法将数据写入到缓冲区中。
bufw.write("hello world !");
bufw.newLine();
bufw.newLine();
bufw.write("!hello world !");
bufw.write("!hello world !");
//使用缓冲区中的方法,将数据刷新到目的地文件中去。
bufw.flush();
//关闭缓冲区,同时关闭了fw流对象
bufw.close();
二、BufferedReader类。
构造方法:BufferedReader br = new BufferReader(Reader in);
主要方法:int read();//读取单个字符。
int read(char[] cbuf,int off,int len);//将字符读入到数组的某一部分。返回读取的字符数。达到尾部 ,返回-1。
String readLine();
//读取一个文本行。
void close();
//关闭该流。并释放与该流相关的所有资源。
import java.io.BufferedW
import java.io.FileW
import java.io.IOE
public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("Buffered.txt");
fw.write("ok168");
fw.close();
* 为了提高写入的效率,使用了字符流的缓冲区。
* 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。
BufferedWriter bufw = new BufferedWriter(fw);
//使用缓冲区中的方法将数据写入到缓冲区中。
bufw.write("hello world !");
bufw.newLine();
bufw.newLine();
bufw.write("!hello world !");
bufw.write("!hello world !");
//使用缓冲区中的方法,将数据刷新到目的地文件中去。
bufw.flush();
//关闭缓冲区,同时关闭了fw流对象
bufw.close();
自定义的一个myBufferedReader类。
import java.io.FileR
import java.io.IOE
public class MyBufferedReader {
private FileR
private char []buf = new char[1024];
private int count = 0;
private int pos = 0;
public MyBufferedReader(FileReader f){
public int myRead() throws IOException{
if(count == 0){
count = fr.read(buf);
if(count&0)
return -1;
int ch = buf[pos++];
public String myReadLine() throws IOException{
StringBuilder sb = new StringBuilder();
int ch = 0;
while ((ch = myRead()) != -1) {
if (ch == '\r')
if (ch == '\n')
return sb.toString();
sb.append((char) ch);
if(count == 0)
return sb.toString();
public void myClose() throws IOException {
fr.close();
使用bufferedReader 和bufferWriter方法写的一个复制文本的小程序。
package IO
import java.io.BufferedR
import java.io.BufferedW
import java.io.FileR
import java.io.FileW
import java.io.IOE
public class TextCopyByBuf {
* 首先创建读取字符数据流对象关联所要复制的文件。
* 创建缓冲区对象关联流对象。
* 从缓冲区中将字符创建并写入到要目的文件中。
* @throws IOException
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("C:\\demo.txt");
FileWriter fw = new FileWriter("D:\\love.txt");
BufferedReader bufr = new BufferedReader(fr);
BufferedWriter bufw = new BufferedWriter(fw);
//一行一行的寫。
String line =
while((line = bufr.readLine()) != null){
bufw.write(line);
bufw.newLine();
bufw.flush();
/* 一個字節一個字節的寫。
int ch = 0;
while((ch = bufr.read())!=-1){
bufw.write(ch);
bufr.close();
bufw.close();
Java_io体系之BufferedWriter、BufferedReader简介、走进源码及示例——16
BufferedReader和BufferedWriter的区别
Java利用BufferedWriter写文本文件
BufferedReader详解
BufferedReader的readLine方法阻塞的处理
Java输入流之BufferReader和Scanner的用法!
java io系列23之 BufferedReader(字符缓冲输入流)
没有更多推荐了,

我要回帖

更多关于 nfcwriter教程 的文章

 

随机推荐