java一行一行写入或读取数据

   
   

假如E:/phsftp/evdokey目录下有个evdokey_201103221556.txt文件,

现在对evdokey_201103221556.txt文件进行写入或读取操作,并解决写入或读取出现的乱码问题。

/**
     * 一行一行读取文件,适合字符读取,若读取中文字符时会出现乱码
     *
     * 流的关闭顺序:先打开的后关,后打开的先关,
     *       否则有可能出现java.io.IOException: Stream closed异常
     *
     * @throws IOException
     */

@Test
    public void readFile01() throws IOException {
        FileReader fr=new FileReader("E:/phsftp/evdokey/evdokey_201103221556.txt");
        BufferedReader br=new BufferedReader(fr);
        String line="";
        String[] arrs=null;
        while ((line=br.readLine())!=null) {
            arrs=line.split(",");
            System.out.println(arrs[0] + " : " + arrs[1] + " : " + arrs[2]);
        }
        br.close();
        fr.close();
    }

/**
     * 一行一行读取文件,解决读取中文字符时出现乱码
     *
     * 流的关闭顺序:先打开的后关,后打开的先关,
     *       否则有可能出现java.io.IOException: Stream closed异常
     *
     * @throws IOException
     */
    @Test
    public void readFile02() throws IOException {
        FileInputStream fis=new FileInputStream("E:/phsftp/evdokey/evdokey_201103221556.txt");
        InputStreamReader isr=new InputStreamReader(fis, "UTF-8");
        BufferedReader br = new BufferedReader(isr);
        //简写如下
        //BufferedReader br = new BufferedReader(new InputStreamReader(
        //        new FileInputStream("E:/phsftp/evdokey/evdokey_201103221556.txt"), "UTF-8"));
        String line="";
        String[] arrs=null;
        while ((line=br.readLine())!=null) {
            arrs=line.split(",");
            System.out.println(arrs[0] + " : " + arrs[1] + " : " + arrs[2]);
        }
        br.close();
        isr.close();
        fis.close();
    }

/**      *

一行一行写入文件,适合字符写入,若写入中文字符时会出现乱码

*      * 流的关闭顺序:先打开的后关,后打开的先关,

*       否则有可能出现java.io.IOException: Stream closed异常

*      * @throws IOException      */

@Test

public void writeFile01() throws IOException {

String[] arrs={  "zhangsan,23,FuJian",   "lisi,30,ShangHai", "wangwu,43,BeiJing", "laolin,21,ChongQing",      "ximenqing,67,GuiZhou"    };

FileWriter fw=new FileWriter(new File("E:/phsftp/evdokey/evdokey_201103221556.txt"));//写入中文字符时会出现乱码                  BufferedWriter  bw=new BufferedWriter(fw);

//BufferedWriter  bw=new BufferedWriter

(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(

new File("E:/phsftp/evdokey/evdokey_201103221556.txt")), "UTF-8")));

for(String arr:arrs){

bw.write(arr+"\t\n");

}

bw.close();

fw.close();

}

时间: 2024-08-07 00:10:26

java一行一行写入或读取数据的相关文章

Java笔记--java一行一行写入或读取数据

转自 Ruthless java一行一行写入或读取数据 链接:http://www.cnblogs.com/linjiqin/archive/2011/03/23/1992250.html 假如E:/phsftp/evdokey目录下有个evdokey_201103221556.txt文件, 现在对evdokey_201103221556.txt文件进行写入或读取操作,并解决写入或读取出现的乱码问题. 文件内容如: zhangsan,23,福建 lisi,30,上海 wangwu,43,北京 l

【Java编程】写入、读取、遍历Properties文件

在Java开发中通常我们会存储配置参数信息到属性文件,这样的属性文件可以是拥有键值对的属性文件,也可以是XML文件,关于XML文件的操作,请参考博文[Java编程]DOM XML Parser 解析.遍历.创建XML.在该篇博文中,我将展示如何向属性文件写入键值对,如何读取属性文件中的键值对,如何遍历属性文件. 1.向属性文件中写入键值对 特别注意: Properties类调用setProperty方法将键值对保存到内存中,此时可以通过getProperty方法读取,propertyNames(

JAVA BufferedReader 类从标准输入读取数据

1,建立输入流: BufferedReader localReader = new BufferedReader( new InputStreamReader(System.in)); System.in 表示标准输入,一般指键盘. 建立输入流,从标准输入读取数据到缓冲区中. 当在标准输入中输入一行字符串时,按回车之后,这行数据就会被读取到缓冲区中. 比如: abc  \r\n(表示按下回车键) 那么msg就会赋值为 abc String msg = null; while ((msg = lo

手机的sd卡的写入和读取数据的方

我们要实现的是:往输入框输入数据,点击一个写入按钮,将输入框内的数据写入到sd卡上,在点击读取按钮,则将sd卡上只等的文件名称内的数据显示到一个textView上. 首先,看一下XML文件,很简单,只有两个按钮,一个输入框,和一个文本控件: 保存的数据可以到mnt/sdcard/下查看 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:

第十七章,txt文件的写入和读取数据结合练习(C++)

#include <iostream> #include <fstream> int main(int argc, char** argv) { std::string str; //--------1.向文件中写入数据-------- std::cout<<"请输入您希望输入的数据,按"回车"键结束."<<std::endl; std::cin>>str; //没有这个文件,会自动创建 std::ofst

通过纯Java代码从excle中读取数据(为.xlsx文件)

参考链接: 程序代码: package demo; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; import javax.xml.parsers.DocumentBuilderFactory; im

JAVA API从MongoDB中读取数据

<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.2.2</version> </dependency> import java.util.ArrayList; import org.bson.Document; import java.util.List; import

java:I/O 一行一行读取和写入

BufferedReader逐行读取 import java.io.*; class Test { public static void main(String args []){ FileReader reader =null; BufferedReader bufferedReader =null; try{ reader = new FileReader("e://d/from.txt"); bufferedReader = new BufferedReader(reader);

Java从一个输入流每次读取一行:BufferedReader.readLine()

假设该输入流从一个文件中获取,然后每次读取一行输出,直到读取完毕.用Java IO中的BufferedReader的readLine(),"顾名思义,读取一行"实现: import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; public class MainClass { public stat