精华内容
下载资源
问答
  • Java字符写入文件三种方式的实现
    千次阅读
    2021-03-14 19:09:27

    Java字符串写入文件三种方式的实现

    发布于 2020-4-5|

    复制链接

    摘记:  Java字符串写入文件三种方式的实现1、使用FileWriter

    ```java

    String str="hello world!";

    FileWriter writer;

    try {

    writer = new FileWriter ..

    Java字符串写入文件三种方式的实现1、使用FileWriter

    ```java

    String str="hello world!";

    FileWriter writer;

    try {

    writer = new FileWriter("E:/token.txt");

    writer.write(str);

    writer.flush();

    writer.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    ```

    2、使用FileOutPutStream

    ```java

    File txt=new File("E:/log1.txt");

    if(!txt.exists()){

    txt.createNewFile();

    }

    byte bytes[]=new byte[512];

    bytes=str.getBytes();

    int b=bytes.length; //是字节的长度,不是字符串的长度

    FileOutputStream fos=new FileOutputStream(txt);

    fos.write(bytes,0,b);

    fos.write(bytes);

    fos.close();

    ```

    3、使用FileOutPutStream追加写入文件

    ```java

    FileOutputStream fos = new FileOutputStream("E:/log.txt",true);

    //true表示在文件末尾追加

    fos.write(log.getBytes());

    fos.close();

    ```

    更多相关内容
  • fileoutstream 对应byte变量字节流,一个字节 filewriter 对应char字符流,2个字节

    FileOutputStream类使用字节流操作文件,文件每次读取/写入以字节为单位

    import java.io.*;
    
    public class FileByte{
    
    	public static void main(String...args){
    
    		File file=new File("D:\\test.txt");
    		if(!file.exists())
    			try{
    				file.createNewFile();
    			}catch(Exception e){
    				e.printStackTrace();
    			}
    		try{
    			FileOutputStream out=new FileOutputStream(file);
    			byte bt[]="i eat apple".getBytes();
    			out.write(bt);
    			out.close();
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		try{
    			FileInputStream in=new FileInputStream(file);
    			byte bt1[]=new byte[1024];
    			int len=in.read(bt1);
    			System.out.println("文件中的信息是:"+new String(bt1,0,len));
    			in.close();
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    	}
    
    }

     

    FileWriter类使用字符流操作文件,文件每次读取/写入以字符(2字节)为单位,由于汉字占用两个字节,因此用字符流操作比较合适

    import java.io.*;
    
    public class FileChar{
    
    	public static void main(String...args){
    
    		File file=new File("D:\\test.txt");
    		if(!file.exists())
    			try{
    				file.createNewFile();
    			}catch(Exception e){
    				e.printStackTrace();
    			}
    		try{
    			FileWriter out=new FileWriter(file);
    			String s="我爱吃苹果";
    			out.write(s);
    			out.close();
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		try{
    			FileReader in=new FileReader(file);
    			char bt1[]=new char[1024];
    			int len=in.read(bt1);
    			System.out.println("文件中的信息是:"+new String(bt1,0,len));
    			in.close();
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    	}
    
    }

     

    展开全文
  • Java.IO 字符流读写文件

    千次阅读 2020-08-17 08:30:00
    点击上方IT牧场,选择置顶或者星标技术干货每日送达!一、序上一篇我们谈了 java.IO 文件字节读写操作(能懂系列Java.io文件字节读写)大家应该都很熟悉了。但是中文和英...

    点击上方 IT牧场 ,选择 置顶或者星标

    技术干货每日送达!

    一、序

    上一篇我们谈了 java.IO 文件字节流读写操作(能懂系列Java.io文件字节流读写)大家应该都很熟悉了。但是中文和英文在字符编码上存在一定性的差异,因为最开始使用的 ASCII编码表 的 256 个字符并没有支持中文,中文编码系统大多数采用的是 GBK 和 UTF-8 。

    在 GBK 编码表中,一个中文字符占用两个字节,UTF-8 中占用了 3 个字节,如果我们采用字节读写的方式读写中文字符就会出现中文编程乱码的情况, 我们都知道 Java 这么风靡很大部分还是因为他的跨平台性,但如果连语言都没有搞定那还怎么牛逼起来,所以 java 为了避免这种情况引进了字符的读写操作。

    所以接下来就来我们继续讲讲 Java.IO 文件字符流。

    二、Java文件读写操作的分类

    我们先来复习一下关于文件读写的主要使用类。

    这一次我们关注的是右边的字符流和他下面的分支。

    字节流读写针对的是一个字节,而在字符流读写中,他的对象并不再是一个单字节,他的读写单位将是一个字符,比如说在 GBK 编码系统中,他读写一个中文就是两字节两字节读写,对于 UTF-8 则是三个字节三个字节读写。

    三、字符流操作

    1.字符输入流Writer

    Writer 是一个用于写入字符流的 「抽象类」。子类必须实现的方法仅有 write(char[], int, int)、flush()close()

    它是所有字符输出流的父类。

    以下是Writer类中常用的几个方法:

    //写入一个字符
    void write(int c)
    
    //写入一个字符数组
    void write(char[] cbuf)
    
    //写入字符串
    void write(String str)
    
    //写入字符数组的一部分,从off索引开始,写入len个字符
    void write(char[] cbuf, int off, int len)
    

    但是由于 Writer 是一个抽象类,我们并不能直接的使用他,所以要找出 Writer 的子类。

    在 java 中有一个Writer的直接子类 FileWriter

    FileWriter 中的 write 方法都继承自 Writer 所以我们不必再去研究 FileWriter 中的方法,所以我们要把重心放到 「FileWriter的构造方法」 中。

    FileWriter 的构造方法摘要:

    /*覆盖形式写入,即从文件的开头进行写入*/
    
    //根据给定的 File 对象构造一个 FileWriter 对象。
    FileWriter(File file)   
    
    //根据给定的文件名构造一个 FileWriter 对象。
    FileWriter(String filename)   
    
    /*追加形式的写入
      若传入的append参数是true则进行追加形式的写入,
      即从文件末尾写入*/
    FileWriter(File file, boolean append)
    FileWriter(String filename, boolean append)
    

    它跟字符输入流的区别就是他会对磁盘文件进行操作,所以使用字符输出流的时候要注意有两个必须运行的方法:

    //刷新该缓冲流,即 ,将使用的Wrtier流写入到本地文件中,而不是存于内存中
    void flush()   
    
    //关闭流,并且释放资源,但必须先刷新流         
    void close()            
    

    下面我们就通过代码的演示来学习字符输出流的使用方法:

    import java.io.FileWriter;
    import java.io.IOException;
    
    public class WriterDemo {
     public static void main(String[] args) throws IOException{
      //单参数构造方法,创建一个字符输出流对象,指定数据输出存储的位置
      FileWriter fw = new FileWriter("D:\\JavaStudyCode\\WriterDemo.txt");
    
      //调用void write(int c)方法写入一个字符
      fw.write(100);
      //调用刷新方法,若未刷新文件中不会出现该字符
      fw.flush();
    
      //调用void write(char[] cbuf)方法写入一个字符数组
      char[] cbuf = {'a','b','c','d'};
      fw.write(cbuf);
      fw.flush();
    
      //调用void write(String str)
      fw.write("JavaStudy感谢您的阅读,让我们共同进步");
      fw.flush();
    
      //调用void write(char[] cbuf, int off, int len)方法写入数组的一部分
      fw.write(cbuf,1,3);
      fw.flush();
    
      //关闭流
      fw.close();
     }
    }
    
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class WriterAppendTrueDemo {
     public static void main(String[] args) throws IOException {
      /*双参数构造方法,创建一个字符输出流对象,指定数据输出存储的位置
        把append参数设置为true进行追加形式的写入*/
      FileWriter fw = new FileWriter("D:\\JavaStudyCode\\WriterDemo.txt", true);
    
      /*采用刚刚的例子进行追加写入*/
      //为了演示方便,在这里插入换行符,以区分两次写入
      fw.write("\n\r");
    
      // 调用void write(int c)方法写入一个字符
      fw.write(100);
      fw.write("\n"); // 为了演示方便,在这里插入换行符
      fw.flush(); 
    
      // 调用void write(char[] cbuf)方法写入一个字符数组
      char[] cbuf = { 'a', 'b', 'c', 'd' };
      fw.write(cbuf);
      fw.write("\n"); // 为了演示方便,在这里插入换行符
      fw.flush();
    
      // 调用void write(String str)
    
      fw.write("JavaStudy感谢您的阅读,让我们共同进步");
      fw.write("\n");     // 为了演示方便,在这里插入换行符
      fw.flush();
    
      // 调用void write(char[] cbuf, int off, int len)方法写入数组的一部分
      fw.write(cbuf, 1, 3);
      fw.flush();
    
      //关闭流
      fw.close();
     }
    }
    

    2.字符输入流Reader

    「Reader」是一个用于读取字符流的「抽象类」。子类必须实现的方法只有 read(char[], int, int) 和 close()。

    它是所有字符输入流的父类。

    以下是 Reader 类中常用的几个方法:

    /*返回值用于存放读取结果,如果到达文件末尾,则返回-1*/
    
    //读取单个字符。
    int read()
    
    //将字符读入数组。 
    int read(char[] cbuf)
    
    //将字符读入数组的某一部分。 
    int read(char[] cbuf, int off, int len)
    

    同样的,由于Reader是一个抽象类,我们并不能直接的使用他,所以要找出Reader的子类。

    在java中有一个Reader的直接子类 FileReader, 它的的 read 方法都继承自 Reader ;所以我们不必再去研究 FileReader 中的方法, 只需要把重心放到 FileReader 的构造方法中。

    FileReader 的构造方法摘要:

    //在给定从中读取数据的 File 的情况下创建一个新 FileReader。
    FileReader(File file)
    
    //在给定从中读取数据的文件名的情况下创建一个新 FileReader。
    FileReader(String fileName)
    

    得到了构造方法和读取方法之后,我们就可以对这个类进行使用了,下面给出 FileReader 类的使用代码演示:

    import java.io.FileReader;
    import java.io.IOException;
    
    public class ReaderDemo {
     public static void main(String[] args) throws IOException {
      //创建一个字符输入流对象,绑定数据读取的位置
      //采用刚刚我们进行写入的文件做演示
      FileReader fw = new FileReader("D:\\JavaStudyCode\\WriterDemo.txt");
    
      //用于接收读取到的字符
      int len = 0;
    
      //循环读取到len=-1,即文件末尾
      while((len = fw.read()) != -1)
      {
       //不加强转输出结果是数字,要将他们转换为字符
       System.out.print((char)len);
      }
    
      /*
      我们也能使用字符数组来读取文件,以提高效率
      char[] cbuf = new char[1024];
      while((len = fw.read(cbuf)) != -1)
      {
       System.out.println((char)len);
      }
      */
    
      //关流
      fw.close();
     }
    }
    

    输出的结果和我们刚刚写入的文件的对比:

    干货分享

    最近将个人学习笔记整理成册,使用PDF分享。关注我,回复如下代码,即可获得百度盘地址,无套路领取!

    •001:《Java并发与高并发解决方案》学习笔记;•002:《深入JVM内核——原理、诊断与优化》学习笔记;•003:《Java面试宝典》•004:《Docker开源书》•005:《Kubernetes开源书》•006:《DDD速成(领域驱动设计速成)》•007:全部•008:加技术群讨论

    近期热文

    LinkedBlockingQueue vs ConcurrentLinkedQueue解读Java 8 中为并发而生的 ConcurrentHashMapRedis性能监控指标汇总最全的DevOps工具集合,再也不怕选型了!微服务架构下,解决数据库跨库查询的一些思路聊聊大厂面试官必问的 MySQL 锁机制

    关注我

    喜欢就点个"在看"呗^_^

    展开全文
  • 主要介绍了java的io操作示例,将字符写入到txt文件中,需要的朋友可以参考下
  • java字符流读取写入文件

    千次阅读 2015-12-09 22:14:09
    inputstreamreader的read方法返回的是一个int,代表读取到的数据长度,可以将读取到的数组保存...代码中,先创建控制台输入对象scan,然后建立字节流与文件file连接,用字符流inputstreamreader包装字节流,同时设定字

    inputstreamreader的read方法返回的是一个int,代表读取到的数据长度,可以将读取到的数组保存到一个char数组中,然后输出,一般都套用bufferedreader,缓冲流,read方法都方便好用,读取保存到string只需要使用readline。

    代码中,先创建控制台输入对象scan,然后建立字节流与文件file连接,用字符流inputstreamreader包装字节流,同时设定字符集,再用bufferedreader类包装,就可以方便的进行读取文件。
    写入也是一样,先建立最基础的文件的输出流连接,然后字符流包装,再缓冲bufferedriter类包装。

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.util.Scanner;
    
    public class CharRWStreamTest01 {
    
        public static void main(String[] args) {
    
            File file=new File("Text.txt");
            File file2=new File("Text1.txt");
            Scanner scan=new Scanner(System.in); 
            try {
                InputStream fis=new FileInputStream(file);
                InputStreamReader isr=new InputStreamReader(fis, "utf-8");
                BufferedReader br=new BufferedReader(isr);
                OutputStream os=new FileOutputStream(file2,false);
                OutputStreamWriter osw=new OutputStreamWriter(os, "utf-8");
                BufferedWriter bw=new BufferedWriter(osw);
                String ss;
                while((ss=br.readLine())!=null){                
                    bw.write(ss);
                    bw.write("\n");
                }
                bw.flush();
                br.close();
                isr.close();
                fis.close();
                bw.close();
                osw.close();
                os.close();
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
    }
    展开全文
  • java使用字符流写入和读取文件内容

    万次阅读 2019-03-21 15:40:05
    首先了解一下什么是字符流和字节流 字节流: 操作的是byte类型的数据,以byte为准,主要有两大抽象类OutputStream 和InputStream,使用这两个抽象类必须用其对应的子类FileOutputStream和FileInputStream 字节流的...
  • Java字符写入文本文件代码示例

    千次阅读 2021-03-09 01:20:04
    一、Filewriter与File——-将字符写入文本文件public static void main(String[] args) {File f=new File("C:\\world.txt");//新建一个文件对象,如果不存在则创建一个该文件FileWriter fw;try {fw=new FileWriter...
  • 1.非常简练易懂的JSON格式化小程序 2.实用的IO管理,读写文件小程序,可改造 3.实际开发中临时写的自己用的,够用,不够完美
  • Java实现文件写入——IO

    千次阅读 2021-02-12 14:52:34
    程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类。Java的输入输出功能来自java.io 包中的InputStream类、...
  • Java字符写入文件三种方式

    万次阅读 2017-08-11 17:27:36
    3、使用FileOutPutStream追加写入文件 FileOutputStream fos = new FileOutputStream( "E:/log.txt" , true ); //true表示在文件末尾追加 fos . write( log . getBytes()); fos . close();
  • 字符缓冲 BufferedWriter​... Writerout:字符输出,我们可以传递FileWriter,缓冲会给FileWriter增加一个缓冲区,提高FileWriter的写入效率 intsz:指定缓冲区的大小,不写默认大小 使用步骤: ...
  • java字符写入到txt文件

    千次阅读 2021-02-12 12:42:40
    字符写入到txt文件中import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;...
  • JAVA字符流复制文件的几种方式

    千次阅读 2019-02-09 19:09:40
    1.字符流也可以拷贝文本文件,但不推荐使用 因为读取时会把字节转为字符,写出时还要把字符转回字节。 2.不可以拷贝非纯文本的文件 因为在读的时候会将字节转换为字符,在转换过程中,可能找不到对应的字符,就会...
  • “日暮乡关何处是,烟波江上使人愁”...将字符写入文件 方法一 public void WriteStringToFile(String filePath) { try { File file = new File(filePath); PrintStream ps = new PrintStream(new FileOutp...
  • java IO流学习笔记——(2)文件字符流&字节数组流 文件字符流FileReader&FileWriter FileReader :通过字符的方式读取文件,仅适合字符文件 FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件 部分...
  • Java基础-3】吃透Java IO:字节流、字符流、缓冲流

    万次阅读 多人点赞 2020-09-23 20:12:33
    什么是Java-IO?字符流和字节流的区别与适用场景是什么?缓冲流到底实现了什么?如何高效地读写文件? 本文用大量的示例图和实例,带你吃透Java IO。
  • Java字节流与字符流文件操作

    千次阅读 2020-07-21 13:29:34
    目录Java.io知识点梳理File类字节流OutputStream字节流InputStream字符流Writer字符流Reader字节流与字符流的转换(了解)字节流与字符流的区别?两者如何使用? Java.io知识点梳理 如果要进行所有的文件以及文件...
  • 指定的字符串: 白天走在街道上,伸手不见五指,周围的建筑全被雾笼罩了,在家里通过窗户往外望去,外面就像仙境一般,雾把所有的东西都淹没了,能看到的,只有白色的雾。! 文件名是text.txt,下面就是java代码: ...
  • 这是我们的文件-FileWriterwriter=newFileWriter("E:/demo.txt");现在,考虑一个字符串数组-Stringarr[]={"ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN",...将上面的数组写入文件“ demo.txt”-intlen=arr.len...
  • 读取写入文件javai/o流字符流 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  • 使用Java字符流读写文件遇到的问题

    千次阅读 2018-06-04 16:36:41
    Java中的字符流可以很方便的读写文本文件.但是在使用中发现两个问题,编译环境JDK8: 1.执行到最后记得flush()或close() 这里用FileReader和FileWriter示例: private static final String sourceName = "...
  • 字符流 Reader Writer  他们都是抽象类  具体实现  字节流 FileInputStream FileOutputStream  字符流 FileReader FileWriter   字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符
  • java读取文件和写入文件的方式以字节为单位读取文件一次读一个字节一次读多个字节以字符为单位读取文件一次读一个字符一次读多个字符 以字节为单位读取文件 以字节为单位读取文件,常用于读二进制文件,如图片、声音...
  • java写入文件(覆盖和续写)

    千次阅读 2021-03-06 16:06:08
    1、写入文件 覆盖@Overridepublic boolean addFile(String string,String path) {PrintStream stream=null;try {stream=new PrintStream(path);//写入的文件pathstream.print(string);//写入的字符串return true;} ...
  • package com.liuxin.test; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOut
  • Java字节流与字符流读写文件

    万次阅读 多人点赞 2018-12-11 19:04:04
    Java文件读写有多种方式,但有一种读写方式可以处理任何场景的文件读写,就是字节的读写。 package com.main.stream; import java.io.File; import java.io.FileInputStream; import java.io....
  • Java文件写入的六种方式

    千次阅读 2021-05-23 16:55:05
    Java 中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入时我们就可以选择各种各样的类来实现。 流 Java 中的“流”是一种抽象的概念,也是一种比喻,就好比...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 147,307
精华内容 58,922
关键字:

java字符流写入文件

java 订阅