1、length():字节数isDirectory():是否为文件目录isFile():是否为文件list():返回目录下的文件名字listFiles():返回目录下文件mkdir():是否创建了一个目录 new File(C:/aaaa).mkdir();renameTo():重命名作业:1.通过代码新建一个文件,判断该文件是否存在。如果存在,将该文件进行删除。2.删除文件夹及其下面文件 File file = new File(temp); if(file.isDirectory() File files = file.listFiles(); for (int i = 0; i files.
2、length; i+) if(filesi.isHidden() System.out.println(filesi.getName()+ ?:+filesi.getAbsolutePath(); if(filesi.exists() filesi.delete(); 3.打印文件夹下的隐藏文件4.打印某文件夹下所有文件名称,包括文件夹名称,包含子文件夹情况。【采用递归算法】public static void main(String args) File file = new File( printFileName(file); private static void printFileNa
3、me(File file) if(file !=null)/? if(file.isDirectory()/? System.out.println(+file.getName(); File files = file.listFiles();/? for(File f : files) printFileName(f); else 利用JTree实现文件展开、折叠。【递归、JTree】3、System处理输入输出静态属性:Out:PrintStream?In:InputStream?Err:public class SystemDemo1 public void addData() /? S
4、ystem.out.println(+SystemDemo1.class.getName() + addData() + +parseDate(); public static void main(String args) File file = new File(+File.separator +loglog.txt if(file.exists() & file.isFile()/? try System.setOut(new PrintStream(file); new SystemDemo1().addData(); catch (FileNotFoundException e) e.
5、printStackTrace(); else file.createNewFile(); catch (IOException e) private static String parseDate() SimpleDateFormat sdf = new SimpleDateFormat(yyyy/MM/dd HH:mm:ss String date = sdf.format(new Date(); return date; System.setIn(new FileInputStream(file); Scanner s = new Scanner(System.in); while(s.
6、hasNext() System.out.println(s.nextLine(); s.close();简单的键盘记录器。对于木马、病毒等,通常可以监视用户在键盘上的操作,如输入用户名和密码,从而盗取账号。通过在控制台输入用户名和密码,将数据写入到文件中,并已明文显示。4、输入输出流在JAVA中所有的数据都是以流的形式进行传输或保存的,程序需要数据时要使用输入流读取数据,当程序需要将一些数据保存起来,则要使用输出流。输入流将外部数据源的数据转换为流,程序就通过读取该类流中的数据,完成对外部数据源数据的读入。输出流将类中流数据转换为外部数据源,完成将程序中的数据写入到外部数据源中。(Byte
7、Stream)?(Char Stream)。字节流是按照字节为单位,一个字节一个字节形成流。字符流是按照字符为单位,一个字符一个字符形成流。字节流:输入流:InputStream 输出流:OutputStream字符流:Reader 输出流:Writer一般来说,对文件进行操作有下面几个步骤:v 使用File类打开一个文件v 使用字节流或字符流来指定输出的位置。v 进行读写操作。v 关闭输入输出流【切记】5、输出流目的:将内存中数据保存到文件中。v 字节流OutputStream类:抽象类,其常用的方法:1.close():关闭输出流 一般来说放置于finally处进行流的关闭2.flush(
8、):刷新缓冲区 强制性地从内存数据同步到外部数据源中3.write():往外部数据源写数据 OutputStream out = System.out; String str = hello,java,? byte bytes = str.getBytes();/ ? try out.write(bytes); catch (IOException e) e.printStackTrace(); finally if (out != null) out.close();v 文件输出流FileOutputStream:1.传入File类型FileOutputStream(File file):2
9、.?FileOutputStream(File file,boolean append):rn。public class FileOutputStreamDemo1 OutputStream out =null;rnhello,java,?1 out = new FileOutputStream(new File(/abc.txt),true);v 缓冲输出流BufferedOutputStream?flush?1.BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,以将数据写入指定的底层输出流。2.BufferedOutputStream(O
10、utputStream out,int size ):创建一个新的缓冲输出流,并制定缓冲输出流大小,以将数据写入指定的底层输出流。注意:一定要记得关闭输出流,另外记得使? BufferedOutputStream bos = null; OutputStream os = System.out; bos = new BufferedOutputStream(os); bos.write(.getBytes(); bos.flush(); if (bos ! bos.close(); if (os ! os.close();6、输入流1.available():返回当前输入流读取时返回的有效字节
11、数2.close():关闭输入流3.read():将外部数据源中输入流读入到程序中4.mark(int readlimit):打标记5.reset():重新回到最后一个mark的位置。6.skip(): InputStream is = System.in; System.out.println( byte bytes = new byte1024; is.read(bytes); System.out.println( String str = new String(bytes); System.out.println(str); finally try if(is != null) is.
12、close(); catch(Exception e)字节读入过程中,组装字符串采用String的构造函数。如果自己写的话,针对汉字需要两个字节合并为一个字符,因此可以利用范围进行判断。例如是字母、数字的可以直接进行转换,对于汉字的则采取两个字节合并。如果不做这样的处理,则会出现中文乱码情况出现。v 作业:1.利用FileInputStream实现对文件的读取,并利用OutputStream将数据写出到控制台。2.实现文件复制功能对文件进行复制,建议采用字节流形式进行处理,原因因为文档并不一定是有文字的文档,有可能为图片、音乐等。应该采用边读边写的方式,因为有可能文件过大产生内存溢出的情况。处
13、理方式见【一个字节一个字节读取】3.扩展:实现文件夹复制功能public class FileDirectoryCopy /* * * param descFile : * param files : */ private static void copy(File descFile, File files) for (int i = 0; if(filesi.isFile()/? InputStream is = null; OutputStream os = null; try is = new FileInputStream(filesi); File file =new File(de
14、scFile.getAbsolutePath()+File.separator + filesi.getName(); os = new FileOutputStream(file); byte bytes = new byte(int)filesi.length(); is.read(bytes); os.write(bytes); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) finally try os.close(); is.close(); catch (IOException e
15、) e.printStackTrace(); if(filesi.isDirectory()/? File file =new File(descFile.getAbsolutePath()+File.separator + filesi.getName(); if(!file.exists()/? file.mkdir(); copy(file, filesi.listFiles(); File sourceFile =new File(/log File descFile =new File(/copy if(!sourceFile.isDirectory() | !sourceFile.
16、exists() if(!descFile.exists()/? descFile.mkdir(); copy(descFile,sourceFile.listFiles(); v FileInputStream1.指定数组长度 is = new FileInputStream(file); byte b = new byte1024; int length = is.read(b);length :+length); System.out.println(new String(b,0,length);2.通过文件指定数组长度 byte b = new byte(int)file.length
17、(); is.read(b); System.out.println(new String(b);3.一个字节一个字节读取/bcd.txt InputStream io; BufferedInputStream bis; io = new FileInputStream(file); bis = new BufferedInputStream(io); byte bytes= new byte(int)file.length(); int temp = 0 ; int i = 0 ; while(temp = bis.read() ) != -1)/? bytesi = (byte)temp;
18、 i+; catch (FileNotFoundException e) 【文件导出功能】:导出Excel、WordJXL -JAR包支持POI -支持03、07版本 【图标功能】:曲线图、柱状图、饼图JFreeChartv 缓冲输入流BufferedInpuputStream。7、字符输入输出流字符流是以字符为单位,因此只能传输文本文件。v WriterWriter类是一个输出流,也是一个抽象类。常用方法:flush():Close():Write(char chars):写入文件Write(String str): Writer w =new PrintWriter(System.out); String str = char chars = str.toCharArray(); FileWriter fw; w.write(chars);/ w.flush(); w.close();BufferWriter? Writer w =null;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1