我正在处理文件中的序列化和反序列化。此外,我很想使用FileOutputStreamwith ObjectOutputStream。问题是我有服务器/客户端聊天应用程序,每当客户端连接时,服务器必须检查连接的客户端之前是否已注册。因此,当客户端连接到服务器时,服务器会创建一个输出流,如
FileOutputStream fos = new FileOutputStream("src\\example\\mainList.txt");
Run Code Online (Sandbox Code Playgroud)
获取链表以检查此列表是否包含此对象。但是,FileOutputStream始终创建一个没有内容的新文件。我知道我是否将“真”值作为第二个参数传递给附加文件,但这个 .txt 文件应该只包含一个链接列表对象。因此,我不想在每个进程中附加一个列表。我该如何处理问题?我只是想要
我希望我已经清楚地告诉你我的问题,我会感谢你的每一个答案。所以还是谢谢
编辑:这是我想说的一个简单例子。
public class PersonTest2 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
LinkedList<Person> list = new LinkedList<Person>();
Person per = new Person("John","Thompson",22);
Person per2 = new Person("Suzie","Cash",23);
Person per3 = new Person("Peter","Jackson",24);
Person per4 = new Person("Michael","Coch",25);
list.add(per);
list.add(per2);
list.add(per3);
list.add(per4);
FileOutputStream fos = new FileOutputStream("person.txt");
BufferedReader br = new BufferedReader(new FileReader("person.txt"));
if (br.readLine() == null ) {
System.out.println("No errors, …Run Code Online (Sandbox Code Playgroud) 老实说,我已经搜索了很多这样的任务,所以我最终尝试了各种方法,但没有任何工作,直到我最终得到这个代码.它完全适合我,所以我不想改变我的代码.
我需要的帮助是将这个代码放在一个开始读取文件的方式,但如果文件不存在,那么它将创建一个新文件.
保存数据的代码:
String data = sharedData.getText().toString();
try {
fos = openFileOutput(FILENAME, MODE_PRIVATE);
fos.write(data.getBytes());
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
加载数据的代码:
FileInputStream fis = null;
String collected = null;
try {
fis = openFileInput(FILENAME);
byte[] dataArray = new byte [fis.available()];
while (fis.read(dataArray) != -1){
collected = new String(dataArray);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally …Run Code Online (Sandbox Code Playgroud) 致所有程序员!我试图找出为什么我的程序无法运行。我被难住了!我正在尝试编写一个程序来打开名为“CSC2134.TXT”的文本文件进行输出,然后从控制台接受文本行并将文本行写入文件并使用任何空字符串来结束程序。这是我所拥有的:
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
char str[80];
ofstream file1;
file1.open("CSC2134.txt");
if (file1 == 0)
{
cout << "error opening CSC2134.txt" << endl;
return 1;
}
else
{
file1 << "Enter some text:\n";
while(strlen(str) != '\n')
{
file1 << cin.getline(str,80);
if(strlen(str) == 0)
break;
}
file1.close();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试找出为什么会收到错误消息。
我正在使用 java SE eclipse。据我所知,当没有由参数命名的文件时 FileOutputStream 构造函数创建由参数命名的新文件。但是,随着继续,我看到 FileOutputStream 产生异常 FileNotFoundException。我真的不知道为什么需要这个例外。我的知识有问题吗?
我的代码如下(制作工作簿并写入文件。在此代码中,虽然没有文件“data.xlsx”,但 FileOutpuStream 制作文件“data.xlsx”。
public ExcelData() {
try {
fileIn = new FileInputStream("data.xlsx");
try {
wb = WorkbookFactory.create(fileIn);
sheet1 = wb.getSheet(Constant.SHEET1_NAME);
sheet2 = wb.getSheet(Constant.SHEET2_NAME);
} catch (EncryptedDocumentException | InvalidFormatException | IOException e) {
e.printStackTrace();
} // if there is file, copy data into workbook
} catch (FileNotFoundException e1) {
initWb();
try {
fileOut = new FileOutputStream("data.xlsx");
wb.write(fileOut);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} // …Run Code Online (Sandbox Code Playgroud) 在Java中,我可以轻松地使用以下代码将a写入ByteArrayOutputStream文件。但是,try-with-resources在 Groovy 中不起作用:(
ByteArrayOutputStream byteArrayOutputStream = getByteStreamMethod();
try(OutputStream outputStream = new FileOutputStream("thefilename")) {
byteArrayOutputStream.writeTo(outputStream);
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试关注http://mrhaki.blogspot.co.uk/2009/11/groovy-goodness-readers-and-writers.html等链接 ,所以在这里回答IntelliJ 错误 - java: try-with-resources 是-source 1.6 错误中不支持。即使在项目设置中选择了 1.7 JDK
但我无法想到 Groovy 语法,可以将上面的 java 代码块编写为。您能在这里稍微指导一下如何在 Groovy 中编写上面的 java 代码块吗?
PS:我使用的是Groovy v2.4.12
groovy fileoutputstream bytearrayoutputstream try-with-resources
我的意思是,我想从android上的文本中删除一行.我怎么删除?我不想读取一个txt并使用删除行创建另一个.我想删除现有txt中的行.谢谢.
我需要从.txt存储在android设备内部存储器中的文件中删除一行.我在用
FileOutputStream fos = context.openFileOutput("file.txt", Context.MODE_APPEND);
打开.txt文件.我已经知道要删除的行.如何删除它?很抱歉,如果这个问题很简单,我看上去并且无法在Google上找到答案.
假设我有一个调用的SortedCollection whitepages,每个记录包含一个Customer带有值name和的值number.我想创建一个函数,以这种方式将它们写入文件
name1
number1
name2
number2
Run Code Online (Sandbox Code Playgroud)
我不得不承认我完全被困在这里.有人可以帮忙吗?
我可以使用以下代码将列表写入文件:
MyList<Integer> l = new MyList<Integer>();
//...
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream writer = new ObjectOutputStream(fos);
writer.writeObject(l);
writer.close();
Run Code Online (Sandbox Code Playgroud)
现在我想从文件中读取列表,并尝试使用此代码:
MyList<Integer> list = new MyList<Integer>();
//...
FileInputStream fis = new FileInputStream(filename);
ObjectInputStream reader = new ObjectInputStream(fis);
list = (MyList<Integer>) reader.readObject();
reader.close();
Run Code Online (Sandbox Code Playgroud)
但是现在我SuppressWarnings unchecked从Eclipse 获得了一个,我必须检查ClassNotFoundException.为什么这样,我该如何防止这种情况?
我有一个名为savegame的文件mysave.sav,如果该文件已存在,我想将数据添加到该文件中.如果该文件不存在,我想创建该文件,然后添加数据.
添加数据工作得很好.但附加数据会覆盖现有数据.我按照axtavt的说明(PrintWriter追加方法不附加).
String savestr = "mysave.sav";
File f = new File(savestr);
PrintWriter out = new PrintWriter(savestr);
if ( f.exists() && !f.isDirectory() ) {
out = new PrintWriter(new FileOutputStream(new File(savestr), true));
out.append(mapstring);
out.close();
}
else {
out.println(mapstring);
out.close();
}
Run Code Online (Sandbox Code Playgroud)
mapstring我要附加的字符串在哪里.你能帮助我吗?谢谢!
fileoutputstream ×10
java ×6
android ×3
file ×2
android-file ×1
apache-poi ×1
c++ ×1
collections ×1
groovy ×1
outputstream ×1
printwriter ×1
smalltalk ×1