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

Python09

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}

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

ClassNotFoundException {

try {

FileInputStream in = new FileInputStream(//创建输入流

"E:\\0326java\\javase\\src\\io\\TestFileInputStream.java")

FileOutputStream out = new FileOutputStream("E:\\1.txt")//创建输出流

int i = 0

while ((i = in.read()) != -1) {

System.out.print((char) i)//循环读取文件数据

out.write(i)//每读一个数据输入到1.txt中

}

out.flush()

out.close()

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}