各位大侠,帮忙写一个输入输出流的程序,谢谢!

放羊大亨 2009-11-20 01:41:18
输入输出流

实验内容:
1)利用流操作,在屏幕上显示文本文件内容及文件的路径、修改时间、大小、长度、可读性和可修改性等属性。
2)借助流操作,以图形界面的方式向文本文件添加记录并显示其记录内容。

实验要求:
文件名通过命令行以参数方式输入。程序需要判断参数提供文件的存在性。待添加的记录通过TextField控件输入,文件内容通过TextArea控件显示。
...全文
380 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
放羊大亨 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bcx954421 的回复:]
class MyMenu
{
private Frame f;
private MenuBar menuBar;
private Menu fileMenu;
private MenuItem openItem,saveItem,closeItem;
private FileDialog openDialog,saveDialog;
private TextArea ta;
private File file;
MyMenu()
{
f = new Frame("mywindow");
f.setLayout(new FlowLayout());
f.setSize(700,600);
f.setLocation(300,150);

menuBar = new MenuBar();
fileMenu = new Menu("文件");

openItem = new MenuItem("打开");
saveItem = new MenuItem("保存");
closeItem = new MenuItem("退出");

openDialog = new FileDialog(f,"我的打开",FileDialog.LOAD);
openDialog.setLocation(300,200);

saveDialog = new FileDialog(f,"我的保存",FileDialog.SAVE);

fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(closeItem);

ta = new TextArea(34,96);

menuBar.add(fileMenu);

f.setMenuBar(menuBar);
f.add(ta);

myEvent();
f.setVisible(true);
}
private void myEvent()
{
saveItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
saveDialog.setVisible(true);
String dir = saveDialog.getDirectory();
String name = saveDialog.getFile();
if(dir==null || name==null)
{
return ;
}
file = new File(dir,name);
}

try
{
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));

bufw.write(ta.getText());
bufw.flush();
bufw.close();
}
catch (IOException ex)
{
System.out.println("save:"+ex.toString());
}
}
});

openItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

openDialog.setVisible(true);

String dir = openDialog.getDirectory();
String name = openDialog.getFile();
if(dir==null || name==null)
{
return ;
}
ta.setText("");
//System.out.println(dir+".."+name);
file = new File(dir,name);
try
{
BufferedReader bufr =
new BufferedReader(new FileReader(file));

String line = null;
while((line=bufr.readLine())!=null)
{
ta.append(line+"\r\n");
}
bufr.close();
}
catch (IOException ex)
{
System.out.println("read:"+ex.toString());
}


}
});

closeItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});

f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}

class  MyMenuDemo
{
public static void main(String[] args)
{
new MyMenu();
//System.out.println("Hello World!");
}
}
[/Quote]
多谢大侠!
不过,题目是这样的
实验内容:
1)利用流操作,在屏幕上显示文本文件内容及文件的路径、修改时间、大小、长度、可读性和可修改性等属性。
2)借助流操作,以图形界面的方式向文本文件添加记录并显示其记录内容。

实验要求:
文件名通过命令行以参数方式输入。程序需要判断参数提供文件的存在性。待添加的记录通过TextField控件输入,文件内容通过TextArea控件显示。
bcx954421 2009-11-20
  • 打赏
  • 举报
回复
class MyMenu
{
private Frame f;
private MenuBar menuBar;
private Menu fileMenu;
private MenuItem openItem,saveItem,closeItem;
private FileDialog openDialog,saveDialog;
private TextArea ta;
private File file;
MyMenu()
{
f = new Frame("mywindow");
f.setLayout(new FlowLayout());
f.setSize(700,600);
f.setLocation(300,150);

menuBar = new MenuBar();
fileMenu = new Menu("文件");

openItem = new MenuItem("打开");
saveItem = new MenuItem("保存");
closeItem = new MenuItem("退出");

openDialog = new FileDialog(f,"我的打开",FileDialog.LOAD);
openDialog.setLocation(300,200);

saveDialog = new FileDialog(f,"我的保存",FileDialog.SAVE);

fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(closeItem);

ta = new TextArea(34,96);

menuBar.add(fileMenu);

f.setMenuBar(menuBar);
f.add(ta);

myEvent();
f.setVisible(true);
}
private void myEvent()
{
saveItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
saveDialog.setVisible(true);
String dir = saveDialog.getDirectory();
String name = saveDialog.getFile();
if(dir==null || name==null)
{
return ;
}
file = new File(dir,name);
}

try
{
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));

bufw.write(ta.getText());
bufw.flush();
bufw.close();
}
catch (IOException ex)
{
System.out.println("save:"+ex.toString());
}
}
});

openItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

openDialog.setVisible(true);

String dir = openDialog.getDirectory();
String name = openDialog.getFile();
if(dir==null || name==null)
{
return ;
}
ta.setText("");
//System.out.println(dir+".."+name);
file = new File(dir,name);
try
{
BufferedReader bufr =
new BufferedReader(new FileReader(file));

String line = null;
while((line=bufr.readLine())!=null)
{
ta.append(line+"\r\n");
}
bufr.close();
}
catch (IOException ex)
{
System.out.println("read:"+ex.toString());
}


}
});

closeItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});

f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}

class MyMenuDemo
{
public static void main(String[] args)
{
new MyMenu();
//System.out.println("Hello World!");
}
}
gao11811 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huyangg 的回复:]
引用 4 楼 gao11811 的回复:
file.getPath() //获得路径
file.lastModified()  //获得与1970/1/1相差得毫秒数,可计算时间
file.length(); //长度,大小和长度一个概念,长度就是字节数,可以换算成文件大小
可读与可写可以直接设置
boolean setReadable(boolean readable, boolean ownerOnly)
          设置此抽象路径名的所有者或所有用户的读权限。
boolean setReadOnly()
          标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。
boolean setWritable(boolean writable)
          设置此抽象路径名所有者写权限的一个便捷方法。
boolean setWritable(boolean writable, boolean ownerOnly)
          设置此抽象路径名的所有者或所有用户的写权限。

显示内容等直接使用BufferedReader br = new BufferedReader(new InputStreamReader(new File("路径")));
追加内容使用PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter("徐路径",true)));

至于GUI,按照描述,十分简单,就不说了



应该是获得文件本身的属性,不是设置文件的属性吧
[/Quote]

没有找到对文件权限读取的方法,既然可以设置,还要读取干吗?
放羊大亨 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gao11811 的回复:]
file.getPath() //获得路径
file.lastModified()  //获得与1970/1/1相差得毫秒数,可计算时间
file.length(); //长度,大小和长度一个概念,长度就是字节数,可以换算成文件大小
可读与可写可以直接设置
boolean setReadable(boolean readable, boolean ownerOnly)
          设置此抽象路径名的所有者或所有用户的读权限。
boolean setReadOnly()
          标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。
boolean setWritable(boolean writable)
          设置此抽象路径名所有者写权限的一个便捷方法。
boolean setWritable(boolean writable, boolean ownerOnly)
          设置此抽象路径名的所有者或所有用户的写权限。

显示内容等直接使用BufferedReader br = new BufferedReader(new InputStreamReader(new File("路径")));
追加内容使用PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter("徐路径",true)));

至于GUI,按照描述,十分简单,就不说了


[/Quote]
应该是获得文件本身的属性,不是设置文件的属性吧
gao11811 2009-11-20
  • 打赏
  • 举报
回复
file.getPath() //获得路径
file.lastModified() //获得与1970/1/1相差得毫秒数,可计算时间
file.length(); //长度,大小和长度一个概念,长度就是字节数,可以换算成文件大小
可读与可写可以直接设置
boolean setReadable(boolean readable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的读权限。
boolean setReadOnly()
标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。
boolean setWritable(boolean writable)
设置此抽象路径名所有者写权限的一个便捷方法。
boolean setWritable(boolean writable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的写权限。

显示内容等直接使用BufferedReader br = new BufferedReader(new InputStreamReader(new File("路径")));
追加内容使用PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter("徐路径",true)));

至于GUI,按照描述,十分简单,就不说了

放羊大亨 2009-11-20
  • 打赏
  • 举报
回复
大侠!你能帮我写一下吧!多谢了!
whut0802 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 huyangg 的回复:]
    1)利用流操作,在屏幕上显示文本文件内容及文件的路径、修改时间、大小、长度、可读性和可修改性等属性。
    2)借助流操作,以图形界面的方式向文本文件添加记录并显示其记录内容。
[/Quote]
问题1,在屏幕上显示文本文件内容,读一行输一行就可以了,后面的利用File类的方法,自己去查API,都可以解决。
问题2,给文本文件添加记录,利用getText()方法
healer_kx 2009-11-20
  • 打赏
  • 举报
回复
你说的这么专业,不等于写个记事本吗?

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧