您的位置:首页 > 职场人生

黑马程序员---Java学习笔记之io2

2013-12-25 05:41 585 查看
1、键盘输入一行,之后在控制台输出,知道遇到“over”

import java.io.IOException;
import java.io.InputStream;

public class SystemInDemo {

/**
* @param args
*/
public static void main(String[] args)throws IOException {
// TODO Auto-generated method stub

InputStream in = System.in;

StringBuilder sb = new StringBuilder();

String end = sb.toString();

int temp;

while(!"over".equals(end))
{
if( (temp = in.read())!='\r')
{
sb.append((char)temp);
}
else
{
in.read();
end = sb.toString();

System.out.println(end);

sb.delete(0,sb.length());
}
}

}

}

2、使用字符转换流类进行读取一行字符串,然后遇到“over”之后,停止输入。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class InputStreamReaderDemo {

/**
* @param args
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub

InputStream in = System.in;

InputStreamReader is = new InputStreamReader(in);

BufferedReader br = new BufferedReader(is);

String line = null;

while( (line = br.readLine()) != null )
{
if("over".equals(line) )
break;

System.out.println(line);

}

}

}

3、键盘输入最常见的写法:

BuffredReader br = new BuffredReader(new InputStreamReader(System.in));

4、什么时候会使用转换流?当涉及到字符与字节之间的转换时,或者是涉及到文件编码问题时(因为转换流中含有相应制定编码表的构造函数)。

5、将一个文件输出到控制台上

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class PrintDemo {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

BufferedReader br = new BufferedReader(new FileReader("F:\\practice\\src\\com\\day20\\PrintDemo.java"));

BufferedWriter bos = new BufferedWriter(new OutputStreamWriter(System.out));

String line = null;
while( (line = br.readLine()) != null )
{
bos.write(line);
bos.flush();
bos.newLine();
}

br.close();
bos.close();
}

}

6、System.in和System.out分别是标准输入路和标准输出流,但是他们可以被System类中的setIn()方法和setOut()方法重定向。

7、Java异常日志和系统日志的创建。

8、File对象,弥补流的不足。流只能操作数据,而不能获取封装了数据的文件的属性信息。

9、File类中的createNewFile()方法只有在指定路径下没有该文件时才会去创建文件,有就不创建。这点跟输出流很不一样。

10、只有一个文件对象,没有具体的文件时,依旧可以通过File类的getPath和getAbsolutePath获取相对路径或绝对路径。

11、输出某个目录下,以某个词为后缀的的所有文件

File f = new File("F:\\");

String[] names = f.list(new FilenameFilter(){
public boolean accept(File dir,String name)
{
return name.endsWith(".txt");
}

}
);
for( String name : names )
{
System.out.println(name);
}

12、File类中的list()方法。是返回一个字符数组,该数组中包括当前File对象所指的目录下的所有文件名及文件夹名(包括隐藏的)。如果当前对象所指的并非目录,而是文件,则该方法返回值为null。

13、某函数在自己函数体中再次调用自己,称为递归。使用递归的时候应注意递归层数和递归条件。

14.递归的应用,打印层次性的目录结构:

import java.io.File;

public class FileTraverseDemo {

public static void main(String[] args) {

File file = new File("F:\\javaworkplace");
int level = 0;
fileTraverse(file,0);

}
public static void fileTraverse(File dir,int level)
{
File[] files = dir.listFiles();
System.out.println(printBlank(level)+dir.getName());
level++;

for( File file : files )
{
if( file.isDirectory() )
{
fileTraverse(file,level);
}
else
{
System.out.println(printBlank(level)+file.getName());
}
}
}
private static String printBlank(int level)
{
StringBuilder sb = new StringBuilder();
for( int i = 0; i < level; i++ )
sb.append("  ");
sb.append("|---");
return sb.toString();
}

}
15、删除一个带文件的目录

import java.io.File;

public class FileDeleteDemo {

public static void main(String[] args) {

File file = new File("F:\\软件编程\\其他");
fileDelete(file);

}
public static void fileDelete(File dir)
{
File[] files = dir.listFiles();
for( File file : files )
{
if( file.isDirectory() )
fileDelete(file);
else
System.out.println(file.toString()+file.delete());
}
System.out.println(dir.toString()+dir.delete());
}

}
16、创建一个文件列表

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class JavaListText {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file = new File("F:\\javaworkplace");
BufferedWriter br = new BufferedWriter(new FileWriter("F:\\javaListText.txt"));

List<String> list = new ArrayList<String>();

javaListText(file,list);

for( String str : list )
{
br.write(str);
br.newLine();
br.flush();
}
br.close();

}
public static void javaListText(File dir,List<String> list) throws IOException
{

File[] files = dir.listFiles();

for(File file : files)
{
if( file.isDirectory() )
javaListText(file,list);
else
{
if(file.getName().endsWith(".java"))
{
String temp = file.getAbsolutePath();
list.add(temp);
}
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: