📄 7.txt
字号:
例程7-1
//InOutDemo.Java
class InOutDemo
{
public static void main(String args[]) throws Exception
{
//定义字节数组
byte buffer[] = new byte[30];
//将从键盘输入的字节序列存储到字节缓冲区中
System.in.read(buffer);
//生成String对象
String strBuffer = new String(buffer);
//在标准输出中输出生成的String对象
System.out.println(strBuffer);
}
}
例程7-2
//FileFilterDemo.Java
import Java.io.*;
public class FileFilterDemo
{
//创建文件对象
File dir = new File(“D:\JavaSource”);
//创建文件类型过滤器
Filter filter = new Filter(“Java”);
//取得文件名字符串数组
String fileList[] = dir.list(filter);
for(int I=0;I<fileList.length;I++)
{
//获取文件对象
File tmpFile = new File(fileList[I]);
//取得文件属性
if( tmpFile.isFile() )
System.out.println(“文件”+tmpfile);
else
System.out.println(“目录”+tmpfile);
}
}
//定义文件过滤器
class Filter implements FilenameFilter
{
//扩展名
String extension;
//构造方法
Filter(String extension)
{
this.extension = extension;
}
//测试文件的扩展名是否为extension
public boolean accept(File directory,String filename)
{
return filename.endsWith(“.”+extension);
}
}
例程7-3
//LastModified.Java
import Java.io.*;
class LastModified
{
public static void main(String[] args)
{
try
{
File temp = File.createTempFile("jcl", ".out");
// Make sure it gets deleted when we're done
temp.deleteOnExit();
// Print out file name and its last modified time
long mod = temp.lastModified();
System.out.println(temp + ":" + mod);
// Introduced some delay
try
{
Thread.sleep(3000);
}
catch (InterruptedException ie)
{
};
// Write something out to file
FileWriter fout = new FileWriter(temp);
fout.write("hello");
fout.close();
System.out.println(temp + ":" + temp.lastModified());
// Change modified date back to original
if (temp.setLastModified(mod))
{
System.out.println(temp + ":" + temp.lastModified());
}
else
{
System.out.println("modification time unchanged");
}
//
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
例程7-4
//FileAttributeDemo.Java
class FileAttributeDemo
{
//main方法
public static void main(String args[])
{
FileAttributeDemo demo = new FileAttributeDemo();
}
//类构造方法
public FileAttributeDemo()
{
//路径分隔符
System.out.println(“Path Separator”+File.pathSeparator);
//路径分隔字符
System.out.println(“Path Separator character”+File.pathSeparatorChar);
//文件分隔符
System.out.println(“Separator”+File.separator);
//文件分隔字符
System.out.println(“Separator character”+File.separatorChar);
//创建文件对象
File flFile = new File(“D:\JavaSource\FileDemo.Java”);
//文件全路径名称
System.out.println(f);
//读属性
System.out.println(f.canRead());
//写属性
System.out.println(f.canWrite());
//文件长度
System.out.println(f.length());
//测试是否为普通文件
System.out.println(f.isFile());
//测试是否为目录
System.out.println(f.isDirectory());
//取得文件最后修改时间
System.out.println(f.lastModified());
//取得文件名
System.out.println(f.getName());
//取得文件所在路径
System.out.println(f.getPath());
//判断文件是否存在
System.out.println(f.exists());
}
}
例程7-5
//ReafFromFile.Java
import Java.io.*;
class ReadFromFile
{
public static void main(String args[])
{
System.out.println(“Please enter a directory that the file located in:”);
//构造待读取文件的目录
StringBuffer stfDir = new StringBuffer();
//从键盘获取输入字符,存储进入字符缓冲区
While((char ch = (char)System.in.read())!=’\n’)
{
stfDir.appendChar(ch);
}
//创建目录文件对象
File dir = new File(stfDir.toString());
System.out.println(“Please enter a filename that want to read:”);
//获取待读取的文件名
StringBuffer stfFilename = new StringBuffer();
//从键盘获取输入字符,存储进入字符缓冲区
While((char ch = (char)System.in.read())!=’\n’)
{
stfFilename.appendChar(ch);
}
//创建文件对象
File readFrom = new File(dir,stfFilename.toString());
//判断文件是否为目录、是否具有写权限、读权限
if(readFrom.isFile() && reafFrom.canWrite() && reafFrom.canRead())
{
//创建RandomAccessFile对象
RandomAccessFile rafFile =
new RandomAccessFile(readFrom,”rw”);
//如果未读到文件尾,则继续读取
while(rafFile.getFilePointer()<rafFile.length())
System.out.println(file.readLine());
//文件关闭
rafFile.close();
}
else
System.out.println(“File cann’t be read!”);
}
}
例程7-6
//WriteToFile.Java
import Java.io.*;
class WriteToFile
{
public static void main(String args[])
{
System.out.println(“Please enter a directory that the file located in:”);
//构造待读取文件的目录
StringBuffer stfDir = new StringBuffer();
//从键盘获取输入字符,存储进入字符缓冲区
While((char ch = (char)System.in.read())!=’\n’)
{
stfDir.appendChar(ch);
}
//创建目录文件对象
File dir = new File(stfDir.toString());
System.out.println(“Please enter a filename that want to read:”);
//获取待读取的文件名
StringBuffer stfFilename = new StringBuffer();
//从键盘获取输入字符,存储进入字符缓冲区
While((char ch = (char)System.in.read())!=’\n’)
{
stfFilename.appendChar(ch);
}
//创建文件对象
File readFrom = new File(dir,stfFilename.toString());
//判断文件是否为目录、是否具有写权限、读权限
if(readFrom.isFile() && reafFrom.canWrite() && reafFrom.canRead())
{
//创建RandomAccessFile对象
RandomAccessFile rafFile =
new RandomAccessFile(readFrom,”rw”);
//如果未读到文件尾,则继续读取
int ch;
StringBuffer stfContent;
while(ch!=-1)
{
//字符缓冲区清空
stfContent.setLength(0);
//接收键盘输入、构造字符缓冲区
while((ch=System.in.read())!=-1)
stfContent.appendChar(ch);
//附加Dos格式行结束标志
stfContent.append(“\r\n”);
//将字符缓冲区的内容写出
rafFile.writeBytes(stfContent.toString());
}
//文件关闭
rafFile.close();
}
}
else
System.out.println(“File cann’t be write!”);
}
}
例程7-7
//SetFileLength.Java
import Java.io.*;
class SetFileLength.Java
{
public static void main(String[] args)
{
if (args.length != 2)
{
System.err.println(
"usage: Java Main <new filename> <size in bytes>");
System.exit(-1);
}
long size = 0;
try
{
size = Long.parseLong(args[1]);
}
catch (NumberFormatException e)
{
System.err.println(
"usage: Java Main <new filename> <size in bytes>");
System.exit(-1);
}
try
{
RandomAccessFile raf = new RandomAccessFile(args[0], "rw");
raf.setLength(size); // extend file to be specified size
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
例程7-8
//FileIODemo.Java
import Java.io.*
class FileIODemo
{
//main方法
public static void main(String args[])
{
FileIODemo aFileIODemo = new FileIODemo();
}
//构造方法
public FileIODemo
{
try
{
//利用系统输入设备作为文件输入流
FileInputStream fin = new FileInputStream(System.in);
//创建输出文件input.txt
FileOutputStream fout = new FileOutputStream( new File(“input.txt”));
int nKeyIn;
for(int n=0;n<10;n++)
{
//从标准输入设备读取10个字符输入
nKeyIn = fin.read();
//向文件输出流中写出输入的字符
fout.write(data);
}
//关闭输出流
fout.close();
//创建文件输入流为文件input.txt
FileInputStream fin = new FileInputStream(new File(“input.txt”));
//文件输出流为系统标准输出
FileOutputStream fout = new FileOutputStream(System.out);
while(fin.available()>0)
{
//从文件中读字符
data = fin.read();
//写出文件输出流
fout.write(data);
}
//关闭输入流
fin.close();
//关闭输出流
fout.close();
}
//捕获文件异常
catch(FileNotFoundException e)
{
e.printStackTrace();
}
//捕获输入输出异常
catch(IOException exp)
{
exp.printStackTrace();
}
}
}
例程7-9
//PipedIODemo.Java
import Java.io.*;
class PipedIODemo
{
public static void main(String args[])
{
try
{
//创建管道输入流
PipedInputStream pin = new PipedInputStream();
//创建管道输出流
PipedOutputStream pout = new PipedOutputStream();
//输入与输出流相连
pout.connect( pin);
//启动管道输入线程
new PipeSender(pout,”sendString”).start();
//启动管道输出线程
new PipeReciver(pin,”receiveString”).start();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
//管道输入类
class PipeSender extends Thread
{
PipedOutputStream pout;
File fFile;
//构造函数
PipeSender(PipedOutputStream out,String file)
{
fFile = file;
pout = out;
}
public void run()
{
//创建输入文件对象
FileInputStream fin = new FileInputStream(fFile);
int n;
try
{
//读文件
while((n=fin.read())!=-1)
{
//向管道中写入
pout.write(n);
}
pout.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
//管道接收类
class PipeReciver extends Thread
{
PipedInputStream pin;
File fFile;
//构造方法
PipeReciver (PipedInputStream in,String file)
{
fFile = file;
pin = in;
}
public void run()
{
//输出文件对象
FileOutputStream fout = new FileOutputStream(fFile);
int n;
try
{
//从管道中读数据
while((n=pin.read())!=-1)
{
//向文件输出对象中写数据
fout.write(n);
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
例程7-10
//ReadMultiFile.Java
import Java.io.*;
import Java.util.*;
class ReadMultiFile
{
public static void main(String args[])
{
//实例化FileFilter类
FileFilter fFilter = new FileFilter(“D:\Java2\Source”,”Java”);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -