java io 读取写文件

java 读取txt文件,汉字乱码,原因是因为文件的编码格式和程序编码采用了不同的编码格式。通常,假如自己不修改的话,windows自身采用的编码格式是gbk(而gbk和gb2312基本上是一样的编码方式),程序中一般采用utf-8,所以读取文件的时候最好指定编码方式

方式1:以字节流读写

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;

import org.apache.commons.lang3.StringUtils;

public class FileReadWriteDemo2 {

    public static void main(String[] args) throws IOException {

        BufferedReader read = new BufferedReader(new InputStreamReader(new FileInputStream("f:/test.txt"),"gbk"));
        Writer out = new OutputStreamWriter(new FileOutputStream("f:/testNew.txt"),"gbk");
        BufferedWriter writer =new BufferedWriter(out);
        String fileContent ="";
        String line = "";
        while ((line = read.readLine()) != null) {
            //删除空格
            if (StringUtils.isNotBlank(line)) {
                //System.out.println(line);
                fileContent +=line+"\r\n";
                writer.write(line);
                writer.write("\r\n");
            }
        }
        read.close();
        writer.close();
        System.out.println(fileContent);
    }
}

方式2:以字符流读写

public class FileReadWriteDemo {

    public static void main(String[] args) throws IOException {
        BufferedReader read = new BufferedReader(new FileReader("f:\\test.txt"));

        BufferedWriter writer = new BufferedWriter(new FileWriter("f:/testNew.txt"));

        String line = "";
        while ((line = read.readLine()) != null) {

            if (StringUtils.isNotBlank(line)) {
                System.out.println(line);
                writer.write(line);
                writer.write("\n ");
            }
        }
        read.close();
        writer.close();
    }
}
时间: 2024-10-07 05:44:16

java io 读取写文件的相关文章

java io 读取文件乱码及读取不出来的问题

import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class TestFileWriter { public static void main(String [] args) { try { FileReader out = new FileReader("d:/a.txt"); BufferedR

Java:IO流与文件基础

Java:IO流与文件基础 说明: 本文所有内容包含图片均为MrSaber自己编写,转载请练习我哦. 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象称作 输入流,可以向其中写入一个字节序列的对象称作 输出流. ? 这些字节序列的来源可以是:文件.网络连接.内存块等. ? 抽象类InputStream和OutputStream是构成输入/输出(I/O)的基础. ? 因为面向字节的流

java并发读&写文件

最近在看Brian Goetz 的<<Java并发实战>>,这本书有两个版本,电子工业出版社的译本很糟糕,建议使用机械工业出版社出版出版的书籍. 在看到第三四章的时候突然想到了多线程读写文件,同时遇到一些书中没有的问题 1, 如何保证组合对象的安全性? 2, 如何判断不变性的约束条件 3, 如何不通过synchronized关键字和锁进行同步处理? 下面是一段代码, 用来从source 读取数据,通过多线程写入target文件中 思路: 1, 如何read/write文件? 2,

五种方式让你在java中读取properties文件内容不再是难题

一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,先和大家共享. 二.项目环境介绍 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Id

Java IO把一个文件中的内容以字符串的形式读出来

代码记录(备查): /** * 把一个文件中的内容以字符串的形式读出来 * * @author zhipengs * */ public class FileToString { public static void main(String[] args) { System.out.println(readFileToString()); } private static String readFileToString() { // new 一个空文件,用于获取路径 File dirs = ne

java io流 创建文件、写入数据、设置输出位置

java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; public class Index{ public static void main(String[] args) throws Exception{ /** * 存储为二进制,给计算机看的 */ //创建文件 DataOutputStream sjl = new DataOutputStrea

java中读取特殊文件的类型

java中读取特殊文件的类型: 第一种方法(字符拼接读取): public static String getType(String s){ String s1=s.substring(s.indexOf(".")+1,s.length()); if(s1.indexOf(".")>0){ s1=getTypeName(s1); } else{ return s1; } return s1;} 第二种方法(利用java中自带的格式库): new Mimetyp

Java IO读取文件之二

package com.lf.iopreoject; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStreamReader; public class TestCode { public static void main(String[] args) { TestCode.test

java Io流向指定文件输入内容

package com.hp.io; import java.io.*; public class BufferedWriterTest{ public static void main(String args[]){ FileWriter fw=null; BufferedWriter bw=null;   //缓冲区输出 FileReader fr=null; BufferedReader bw=null;  //缓冲区输入 try{ fw=new FileWriter("f:\\放弃吧.t