面向字符的流
面向字符的抽象流类-- Reader和Writer
System.out.printf("%-12s is %2d long", name, l);
System.out.printf("value = %2.2F",value);
%n是平台无关的换行标志。
Scanner s = new Scanner(System.in);
int n = s.nextInt();
口还有下列方法: nextByte(),nextDouble(),nextFloat(),nextInt(),
nextLine(),nextLong(),nextShort().
import java.io.*;
class FileWriterTester {
public static void main ( String[] args ) throws IOException {
//main方法中声明抛出IO异常
String fileName = "Hello.txt";
FileWriter writer = new FileWriter( fileName );
writer.write( "Hello!\n");
writer.write( "This is my first text file,\n" );
writer.write( "You can see how this is done.\n" );
writer.write("输入一行中文也可以\n");
writer.close();
}
}
运行结果:
但是有时候换行那里会出现问题,后面可以用BufferedWriter解决。
import java.io.*;
class FileWriterTester {
public static void main ( String[] args){
String fileName = "Hello.txt" ;
try { //将所有IO操作放入try块中
FileWriter writer = new FileWriter( fileName ,true );
writer.write( "Hello!\n");
writer.write( "This is my first text file,\n" );
writer.write( "You can see how this is done. \n" );
writer.write("输入-行中文也可以\n");
writer.close();
}
catch (IOException iox) { System.out.println("Problem writing" + fileName ); }
}
}
说明:
运行此程序,会发现在原文件内容后面又追加了重复的内容,这就是将构
造方法的第二个参数设为true的效果。
如果将文件属性改为只读属性,再运行本程序,就会出现IO错误,程序将
转入catch块中,给出出错信息。
BufferedWriter类
import java.io.*;
class BufferedWriterTest {
public static void main ( String[] args ) throws IOException {
String fileName = "newHello.txt" ;
BufferedWriter out = new BufferedWriter(new FileWriter( fileName ));
out.write( "Hello!" );
out.newLine() ;
out.write( "This is another text file using BufferedWriter," );
out.newLine();;
out.write( "So I can use a common way to start a newline" );
out.close();
}
}
import java.io.*;
class BufferedReaderTester {
public static void main ( String[] args ){
String fileName = "Hello.txt" ,line;
try{
BufferedReader in = new BufferedReader(new FileReader( fileName ));
line = in.readLine(); //读取一 行内容
while ( line!= null) {
System.out.println( line ); line = in.readLine();
}
in.close();
}
catch ( IOException iox ) { System.out.println("Problem reading " + fileName ); }
}
}
int c;
while((c=in.read()!= -1) System.out.print((char)c);