给你比较简洁的答案:
import javaioFileReader;
import javaioFileWriter;
public class TestCopy {
public static void main(String[] args) {
try {
FileReader fr = new FileReader("D:/texttxt");
FileWriter fw = new FileWriter("D:/textCopytxt");
int b = frread();
while (b != -1) {//读取文件,一边输出内容
fwwrite(b);
Systemoutprint((char) b);
b = frread();
}
fwclose();
frclose();
} catch (Exception e) {
eprintStackTrace();
}
}
}
好好看下API吧。
import javaawtContainer;
import javaawtPoint;
import javaawtToolkit;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaioFile;
import javaxswingJButton;
import javaxswingJFileChooser;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJTabbedPane;
import javaxswingJTextField;
public class YFileChooser implements ActionListener{
JFrame frame=new JFrame("文件选择器实例");
JTabbedPane tabPane=new JTabbedPane();//选项卡布局
Container con=new Container();//布局1
Container con1=new Container();//布局2
JLabel label1=new JLabel("选择目录");
JLabel label2=new JLabel("选择文件");
JTextField text1=new JTextField();
JTextField text2=new JTextField();
JButton button1=new JButton("");
JButton button2=new JButton("");
JFileChooser jfc=new JFileChooser();//文件选择器
YFileChooser(){
jfcsetCurrentDirectory(new File("d:\\"));//文件选择器的初始目录定为d盘
//下面两行是取得屏幕的高度和宽度
double lx=ToolkitgetDefaultToolkit()getScreenSize()getWidth();
double ly=ToolkitgetDefaultToolkit()getScreenSize()getHeight();
framesetLocation(new Point((int)(lx/2)-150,(int)(ly/2)-150));//设定窗口出现位置
framesetSize(300,150);//设定窗口大小
framesetContentPane(tabPane);//设置布局
//下面设定标签等的出现位置和高宽
label1setBounds(10,10,70,20);
label2setBounds(10,30,100,20);
text1setBounds(80,10,120,20);
text2setBounds(80,30,120,20);
button1setBounds(210,10,50,20);
button2setBounds(210,30,50,20);
button1addActionListener(this);//添加事件处理
button2addActionListener(this);//添加事件处理
conadd(label1);
conadd(label2);
conadd(text1);
conadd(text2);
conadd(button1);
conadd(button2);
conadd(jfc);
tabPaneadd("目录/文件选择",con);//添加布局1
tabPaneadd("暂无内容",con1);//添加布局2
framesetVisible(true);//窗口可见
framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);//使能关闭窗口,结束程序
}
public void actionPerformed(ActionEvent e){//事件处理
if(egetSource()equals(button1)){//判断触发方法的按钮是哪个
jfcsetFileSelectionMode(1);//设定只能选择到文件夹
int state=jfcshowOpenDialog(null);//此句是打开文件选择器界面的触发语句
if(state==1){
return;//撤销则返回
}
else{
File f=jfcgetSelectedFile();//f为选择到的目录
text1setText(fgetAbsolutePath());
}
}
if(egetSource()equals(button2)){
jfcsetFileSelectionMode(0);//设定只能选择到文件
int state=jfcshowOpenDialog(null);//此句是打开文件选择器界面的触发语句
if(state==1){
return;//撤销则返回
}
else{
File f=jfcgetSelectedFile();//f为选择到的文件
text2setText(fgetAbsolutePath());
}
}
}
public static void main(String[] args) {
new YFileChooser();
}
}
本来自己写了一个 ,发现别人写的比较到位 就给你贴出来了
参考资料 :>
你的这个问题大概分为以下几个步骤:
1先得到屏幕图像:
这里如果只是得到图像,图像抓取出来一般是矩形的(有专门的方法RobotcreateScreenCapture()),的大小用边界检测来限制(javaRectangle类中参考下),抓取到的它有左上角那个点的坐标(x,y)还有宽度width,还有高度height,这些就是图像的基本信息了(其他信息如颜色之类的是同样的道理),最好写一个Image的Bean,你存储的时候就可以直接存对象,而不是每个图像的基本信息了。
2从内存中把读出来并保存到磁盘:
抓取下来的被BufferedImage接收,但是这个并没有被保存起来,只是在内存中的缓存区而已。不管是什么数据,包括数据库里面的表,都是以文件的形式被保存在磁盘上的,所以这里就要把BufferedImage写入一个文件(推荐使用字符流)。这个过程用到的是IO上面的知识。
3重新画出:
第二步中已经把以对象的形式保存在文件中了,那么你要画出来就需要重新从文件中读取出这个的信息(IO上的知识)(x,y,width,height),Frame会自动调用paint方法,但是你需要在Image的Bean里面定义它自身的draw方法,然后在paint方法中调用draw方法,这样就可以在你的程序窗口中画出这张。
以上就是关于在java中编写使用字符流实现文本文件的复制同时将文本文件显示在屏幕上,并统计文全部的内容,包括:在java中编写使用字符流实现文本文件的复制同时将文本文件显示在屏幕上,并统计文、java设计一个界面 能获取文本文件地址、java中如何得到屏幕图像信息并保存起来 最后画出来 是不是用BufferedImage来保存啊 求一个大概过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)