Java中如何实现文件的输入和输出?

Python018

Java中如何实现文件的输入和输出?,第1张

程序如下:\x0d\x0a \x0d\x0a\x0d\x0aFile file1 = new File("/home/a123/a")\x0d\x0a\x0d\x0aif (file1.exists()) { \x0d\x0aSystem.out.println("存在文件夹a") \x0d\x0a} else { \x0d\x0afile1.mkdir()// 文件夹的创建 创建文件夹/home/a123/a \x0d\x0a} \x0d\x0aFile file2 = new File("/home/a123/a/test") \x0d\x0aif (file2.exists()) { \x0d\x0aSystem.out.println("存在文件夹或者文件test") \x0d\x0a} else { \x0d\x0atry { \x0d\x0afile2.createNewFile()// 文件的创建,注意与文件夹创建的区别 \x0d\x0a} catch (IOException e) { \x0d\x0a// TODO Auto-generated catch block \x0d\x0ae.printStackTrace() \x0d\x0a} \x0d\x0a} \x0d\x0a \x0d\x0a/** \x0d\x0a * 最简单的文件读写方法是使用类FileWriter \x0d\x0a * (它的父类依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object )\x0d\x0a */ \x0d\x0a \x0d\x0a// 下面是向文件file2里面写数据 \x0d\x0atry { \x0d\x0aFileWriter fileWriter = new FileWriter(file2) \x0d\x0aString s = new String("This is a test! \n" + "aaaa") \x0d\x0afileWriter.write(s) \x0d\x0afileWriter.close()// 关闭数据流 \x0d\x0a\x0d\x0a} catch (IOException e) { \x0d\x0a// TODO Auto-generated catch block \x0d\x0ae.printStackTrace() \x0d\x0a} \x0d\x0a \x0d\x0a/* \x0d\x0a * 这样写数据的话,是完全更新文件test里面的内容,即把以前的东西全部删除,重新输入。 \x0d\x0a * 如果不想删除以前的数据,而是把新增加的内容增添在文件末尾处。只需要在创建FileWriter对象时候,使用另外一个构造函数即可: \x0d\x0a * FileWriter fileWriter=new FileWriter(file2,true)\x0d\x0a */ \x0d\x0a \x0d\x0a// 下面是从文件file2读东西 \x0d\x0atry { \x0d\x0aFileReader fileReader = new FileReader(file2) \x0d\x0aString s = null \x0d\x0achar ch \x0d\x0atry { \x0d\x0achar[] c = new char[100] \x0d\x0afileReader.read(c,0,2)// 具体想得到文件里面的什么值(单个char?int?还是String?), \x0d\x0aSystem.out.println(c) \x0d\x0afileReader.close() \x0d\x0a \x0d\x0a} catch (IOException e) { \x0d\x0a// TODO Auto-generated catch block \x0d\x0ae.printStackTrace() \x0d\x0a} \x0d\x0a \x0d\x0a} catch (FileNotFoundException e) { \x0d\x0a// TODO Auto-generated catch block \x0d\x0ae.printStackTrace() \x0d\x0a} \x0d\x0a/** \x0d\x0a * 具体想得到文件里面的什么值(单个char?int?还是String?),需要知道不通read的不同用法: \x0d\x0a * 1. int read() 读取单个字符。 \x0d\x0a * 2. int read(char[] cbuf) 将字符读入数组。可以再将字符型数组转化位字符串 \x0d\x0a * 3. int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。 \x0d\x0a * 这三个方法都返回一个int值,作用是:读取的字符数,如果已到达流的末尾,则返回 -1. \x0d\x0a */ \x0d\x0a \x0d\x0a}

写文件

import java.io.File

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

import java.io.OutputStreamWriter

import java.io.UnsupportedEncodingException

import java.io.Writer

public class WriteFile {

    public static void main(String[] args) {

        File file = new File("F:" + File.separator + "abcd.txt")

        try {

            // 注意,这个地方,那个true的参数,代表如果这个文件已经存在了,就把新的内容添加到该文件的最后

            // 如果你想重新创建新文件,把true改成false就好了

            Writer writer = new OutputStreamWriter(new FileOutputStream(file, true), "GBK")

            StringBuilder builder = new StringBuilder()

            for (int i = 0 i < 100 i++) {

                int temp = (int) ((Math.random() + 1) * 1000)

                builder.append(String.valueOf(temp))

                builder.append("|")

                temp = (int) ((Math.random() + 1) * 1000)

                builder.append(String.valueOf(temp)).append("\n")

            }

            writer.write(builder.toString())

            writer.close()

        } catch (UnsupportedEncodingException e) {

            e.printStackTrace()

        } catch (FileNotFoundException e) {

            e.printStackTrace()

        } catch (IOException e) {

            e.printStackTrace()

        }

    }

}

读文件

import java.io.BufferedReader

import java.io.File

import java.io.FileInputStream

import java.io.InputStreamReader

public class ReadFile {

    public static void main(String[] args) {

        File file = new File("F:" + File.separator + "abcd.txt")

        String s = ""

        try {

            InputStreamReader read = new InputStreamReader(new FileInputStream(file), "GBK")

            BufferedReader reader = new BufferedReader(read)

            String line

            while ((line = reader.readLine()) != null) {

                s += line + "\n"

            }

            reader.close()

            read.close()

        } catch (Exception e) {

            e.printStackTrace()

        }

        System.out.println(s)

    }

}数据的格式: