程序如下:\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)
}
}数据的格式: