用fileoutputstream输出和fileinputstram输入
把一个文件中内容写入到另一个文件中哦,我现在刚学这个输入输出问题多多我要完成的是要从textarea输入的内容用fileoutputstream输出保存到一个文件中
遇到了数据类型转化问题,
就想到先用randomaccessfile中的writechars(string)写到一个文件中
再把这个文件用fileinputstrwam输入程序又遇到了问题哦,想每次读取怎么知道已经读到文件结尾,
fileoutputstream的写入函数又是write(byte[])或者是write(int b);类型的自己也糊涂了希望朋友给个程序,完整的给我看看就好了(用用fileoutputstream输出和fileinputstram输入)
把一个文件中内容写入到另一个文件中哦,我现在刚学这个输入输出问题多多我要完成的是要从textarea输入的内容用fileoutputstream输出保存到一个文件中
遇到了数据类型转化问题,
就想到先用randomaccessfile中的writechars(string)写到一个文件中
再把这个文件用fileinputstrwam输入程序又遇到了问题哦,想每次读取怎么知道已经读到文件结尾,
fileoutputstream的写入函数又是write(byte[])或者是write(int b);类型的自己也糊涂了希望朋友给个程序,完整的给我看看就好了(用用fileoutputstream输出和fileinputstram输入)
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import javax.swing.*;
import java.io.*;
public class TextEdit extends Frame implements ActionListener
{
static TextEdit frame = new TextEdit();
static MenuBar mb = new MenuBar();
static Menu menu1 = new Menu("File");
static Menu menu2 = new Menu("Edit");
static Menu menu3 = new Menu("Format");
static Menu menu4 = new Menu("Help");
static MenuItem item1 = new MenuItem("New");
static MenuItem item2 = new MenuItem("Open");
static MenuItem item3 = new MenuItem("Save As");
static MenuItem item4 = new MenuItem("Exit");
static MenuItem item5 = new MenuItem("Cut");
static MenuItem item6 = new MenuItem("Copy");
static MenuItem item7 = new MenuItem("Paste");
static MenuItem item8 = new MenuItem("Font");
static MenuItem item9 = new MenuItem("About TextEdit 1.0");
static MenuItem item10 = new MenuItem("Color");
static Dialog fontDialog = new Dialog(frame, "FontDialog", false);
static List fontList = new List(7, false);
static List sizeList = new List(7, false);
//获取系统字体
static Font[] font = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
static int[] size = new int[23];
static Button okButton = new Button("OK");
static Button cancelButton = new Button("Cancel");
static Label label1 = new Label("Font", Label.CENTER);
static Label label2 = new Label("Size", Label.CENTER);
static ColorChooser chooser = new ColorChooser();
static TextArea textarea = new TextArea();
static FileDialog openfile;
static FileDialog savefile;
static Clipboard clipboard = frame.getToolkit().getSystemClipboard();
public static void main(String[] args)throws IOException
{
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
menu2.add(item5);
menu2.add(item6);
menu2.add(item7);
menu3.add(item8);
menu3.add(item10);
menu4.add(item9);
mb.add(menu1);
mb.add(menu2);
mb.add(menu3);
mb.add(menu4);
fontDialog.setLayout(null);
fontDialog.setBounds(80, 80, 300, 350);
fontDialog.setResizable(false);
fontDialog.add(fontList);
fontDialog.add(sizeList);
fontDialog.add(okButton);
fontDialog.add(cancelButton);
fontDialog.add(label1);
fontDialog.add(label2);
fontDialog.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
fontDialog.dispose();
}
});
fontList.setBounds(10, 70, 200, 200);
sizeList.setBounds(230, 70, 50, 200);
fontList.select(129);
sizeList.select(5);
okButton.setBounds(30, 290, 60, 20);
cancelButton.setBounds(180, 290, 60, 20);
label1.setBounds(10, 50, 200, 20);
label1.setBackground(new Color(121, 121, 121));
label2.setBounds(230, 50, 50, 20);
label2.setBackground(new Color(121, 121, 121));
String[] fontName = new String[font.length];
for(int i = 0; i < font.length; i++)
{
fontName[i] = font[i].getName();
fontList.add(fontName[i]);
}
for(int i = 3; i < size.length + 3; i++)
{
size[i - 3] = i * 2;
sizeList.add(Integer.toString(i * 2));
}
textarea.setFont(new Font("宋体", Font.PLAIN, 16));
frame.setMenuBar(mb);
frame.add(textarea);
frame.setSize(600, 450);
frame.setVisible(true);
frame.setTitle("Text Edit");
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
item1.addActionListener(frame);
item2.addActionListener(frame);
item3.addActionListener(frame);
item4.addActionListener(frame);
item5.addActionListener(frame);
item6.addActionListener(frame);
item7.addActionListener(frame);
item8.addActionListener(frame);
item9.addActionListener(frame);
item10.addActionListener(frame);
okButton.addActionListener(frame);
cancelButton.addActionListener(frame);
}
{
Object mi = e.getSource();//打开文件
if(mi == item2)
{
openfile = new FileDialog(this, "Open Dialog", FileDialog.LOAD);
openfile.setVisible(true);
try
{
if(openfile.getFile() != null)
{
String filePath;
filePath = openfile.getDirectory() + openfile.getFile();
FileInputStream is = new FileInputStream(filePath);
InputStreamReader ir = new InputStreamReader(is);
int c;
StringBuffer buf = new StringBuffer();
while((c = ir.read()) != -1)
{
buf.append((char)c);
}
textarea.append(new String(buf));
}
}
catch(IOException e2)
{
}
}
else if(mi == item3)//保存文件
{
savefile = new FileDialog(this, "Save Dialog", FileDialog.SAVE);
savefile.setVisible(true);
if(savefile.getFile() != null)
{
try
{
String filePath;
filePath = savefile.getDirectory() + savefile.getFile();
FileOutputStream os = new FileOutputStream(filePath);
OutputStreamWriter writer = new OutputStreamWriter(os);
writer.write(textarea.getText(), 0, textarea.getText().length());
writer.close();
os.close();
}
catch(IOException e3)
{
}
}
}
else if(mi == item4)
System.exit(0);
else if(mi == item9)
JOptionPane.showMessageDialog(frame, "Version: TextEdit 1.0\n Author: Mr. tan",
"About TextEdit 1.0", JOptionPane.INFORMATION_MESSAGE);
else if(mi == item6) //拷贝到剪贴板。
{
String temp = textarea.getSelectedText(); //拖动鼠标选取文本。
StringSelection text = new StringSelection(temp);
clipboard.setContents(text,null);
}
else if(mi == item5) //剪贴到剪贴板。
{
String temp = textarea.getSelectedText(); //拖动鼠标选取文本。
StringSelection text = new StringSelection(temp);
clipboard.setContents(text,null);
int start = textarea.getSelectionStart();
int end = textarea.getSelectionEnd();
textarea.replaceRange("",start,end) ; //从textarea中删除被选取的文本。
}
else if(mi == item7) //从剪贴板粘贴数据。
{
Transferable contents = clipboard.getContents(this);
DataFlavor flavor = DataFlavor.stringFlavor;
if(contents.isDataFlavorSupported(flavor))
try{
String str;
str = (String)contents.getTransferData(flavor);
textarea.append(str);
}
catch(Exception ee)
{
}
}
else if(mi == item8)
{
fontDialog.setVisible(true);
}
else if(mi == item1)
{
textarea.setText(null);
}
if(mi == okButton)
{
Font selectedFont = font[fontList.getSelectedIndex()].deriveFont((float)(size[sizeList.getSelectedIndex()]));
textarea.setFont(selectedFont);
fontDialog.dispose();
}
else if(mi == cancelButton)
{
fontDialog.dispose();
}
if(mi == item10)
{
chooser.setVisible(true);
}
}
static class ColorChooser extends JDialog
{
JColorChooser colorChooser;
Container c = getContentPane();
public ColorChooser()
{
super(frame, "ColorDialog", false);
setSize(450, 450);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
setVisible(false);
}
});
Container c = getContentPane();
colorChooser = new JColorChooser(Color.black);
c.add(colorChooser, BorderLayout.NORTH);
JButton okButton = new JButton("Ok");
okButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
closeAndSave();
}
});
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
setVisible(false);
}
});
JPanel controlPanel = new JPanel();
controlPanel.add(okButton);
controlPanel.add(cancelButton);
c.add(controlPanel, BorderLayout.SOUTH);
}
public void closeAndSave()
{
Color fontColor = colorChooser.getColor();
textarea.setForeground(fontColor);
setVisible(false);
}
}
}
来解决文件的输出和输入,很简单可以你的程序很棒 我留着以后自己试着模仿下你程序自己也写过看看呵呵
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class test { /**
* @param args
* @throws IOException
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String string = "我是ghyghost";// 此为textarea中的字符串内容 FileOutputStream out = new FileOutputStream("test.txt");
out.write(string.getBytes());
out.flush();
out.close(); } catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
示例程序
java是否有这样的?也给我例子哦
API文挡有我不怎么很看的懂
int a;
while ((a = input.read()) != -1) {
System.out.print((char) a);
} while ((a = input.read()) != -1)这句用来判断是不是到文件尾了