java IO
来源:互联网 发布:如何申请淘宝 编辑:程序博客网 时间:2024/06/18 05:35
总结出处:http://www.cnblogs.com/lich/archive/2011/12/10/2283445.html
File类的操作
//创建一个文件下的某个文件,先创建文件夹,否则会创建失败 //File 方法调用1.判断目录是否存在,2.创建目录,3.判断文件是否存在,4.删除文件 5.创建文件 //6列出目录下所有文件名称 6.得到目录下所有文件urlFile fdir = new File("C:\\Users\\Administrator\\Desktop"+File.separator+"basic");if(fdir.isDirectory()){ System.out.println("is directory");}else{ System.out.println("is not directory,mkdir"); fdir.mkdir();}File ftxt1 = new File("C:\\Users\\Administrator\\Desktop"+File.separator+"basic"+File.separator+"ftxt1.txt");if(ftxt1.exists()){ System.out.println("ftxt1 is exists"); //ftxt1.delete();}else{ try { System.out.println("ftxt1 is not exists,creat"); ftxt1.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }}String[] fStrs=fdir.list();for(int i=0;i<fStrs.length;i++){ System.out.println(fStrs[i]);}File[] files = fdir.listFiles();for(File f:files){ System.out.println(f);}
RandomAccessFile类
之前的File类只是针对文件本身进行操作的,而如果相对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随即读取类,可以随机的读取一个文件中指定位置的数据。因为在文件中,所有得内容都是按照字节存放的,都有固定的保存位置。
public static void randomAccessFormText() throws IOException{ File file = new File("C:\\Users\\Administrator\\Desktop"+File.separator+"basic"+File.separator+"ftxt2.txt"); RandomAccessFile rf = new RandomAccessFile(file, "rw"); String name1 = "肖"; int age1 = 10; String name2="tto"; int age2 = 26; rf.writeUTF(name1); rf.writeInt(age1); rf.writeBytes(name2); rf.writeInt(age2); rf.close(); RandomAccessFile raf = new RandomAccessFile(file, "r"); raf.skipBytes(9); byte[] bs = new byte[3]; for(int i=0;i<bs.length;i++){ bs[i] = raf.readByte(); } String n2 = new String(bs); int ag2 = raf.readInt(); System.out.println(n2+"\t"+ag2); raf.seek(0); System.out.println(raf.readUTF()+"\t"+raf.readInt()); }
字节流字符流
public static void fileInputOutput() throws IOException{ //写入 字节流 File file = new File("C:\\Users\\Administrator\\Desktop"+File.separator+"basic"+File.separator+"ftxt2.txt"); OutputStream os = new FileOutputStream(file,true); String s = "Hello word"; os.write(s.getBytes()); os.close(); //读取 字节流 InputStream is = new FileInputStream(file); byte[] bt = new byte[(int)file.length()]; is.read(bt); //System.out.println(new String(bt)); is.close(); //写入 字符流 Writer writer = new FileWriter(file,true); String s1 = "Jone"; writer.write(s1); //不关闭拼不上 writer.close(); //读出字符流 Reader reader = new FileReader(file); char[] c = new char[1024]; int len = 0; int temp = 0; while((temp=reader.read())!=-1){ c[len] = (char)temp; len++; } System.out.println(new String(c)); }
把一个文件里的内容拷贝到另一个文件
public static boolean copyFile(File srcFile, File destFile) { FileInputStream fi = null; FileOutputStream fo = null; FileChannel in = null; FileChannel out = null; try { fi = new FileInputStream(srcFile); fo = new FileOutputStream(destFile); in = fi.getChannel();//得到对应的文件通道 out = fo.getChannel();//得到对应的文件通道 in.transferTo(0, in.size(), out);//连接两个通道,并且从in通道读取,然后写入out通道 return true; } catch (IOException e) { e.printStackTrace(); return false; } finally { try { fi.close(); in.close(); fo.close(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }
ByteArrayInputStream 和ByteArrayOutputStream
之前所讲解的程序中,输出和输入都是从文件中来得,当然,也可以将输出的位置设置在内存之上,此时就要使用ByteArrayInputStream、ByteArrayOutputStream来完成输入输出功能了
ByteArrayInputStream的主要功能将内容输入到内存之中
ByteArrayOutputStream的主要功能是将内存中的数据输出
优点:缓存 ,得到数据后可以不仅用来输出到硬盘,也可以到 显卡 。。。
此时应该把内存作为操作点
ByteArrayInputStream和ByteArrayOutputStream String str="HELLO WORlD!!!"; InputStream input=new ByteArrayInputStream(str.getBytes()); OutputStream output=new ByteArrayOutputStream(); int temp=0; while((temp=input.read())!=-1){ output.write(Character.toLowerCase(temp)); } input.close(); output.close(); System.out.println(output.toString());
1 0
- 【Java-IO】IO入门
- Java IO:IO框架
- 【IO】java IO 总结
- java IO
- IO.java
- JAVA IO
- JAVA IO
- java IO
- java io
- JAVA IO
- java IO
- java IO
- java io
- java io
- java io
- java IO
- java IO
- java io
- java 解析 json
- C#实现窗口最小化到系统托盘
- Linux环境下Java对进程的操作
- Traversing an Array in Node.js
- ViewTreeObserver用法示例
- java IO
- iOS点方法使用
- 对象导论
- 关于Java构造器的一点归纳
- Window XP驱动开发(二) 环境搭建(VS2008+WDK+DDKWzard)及示例源码分析
- 复选框数据请求到后台
- 文件打开模式和文件对象方法
- 深度学习triplet loss 做人再识别(person-reid)
- Go语言学习之Hello World(The way to go)