Reading from DataInputStream.

Hi,
I am writing a client-server application (communicating through TCP sockets) and I am reading the input streams on both ends (at the client and at the server) with a java.io.DataInputStream. My problem is that I want to get the number of available bytes (I am calling the available() method) prior to reading them, but the DataInputStream always returns 0.
Does anybody know a way to get the number of available bytes from DataInputStream?
TIA
Regards,
Stefan

I am sure you wanted to help and I thank you, but what you said is not true.
First of all, java.io.DataInputStream is a wrapper for other input streams - it requires an InputStream in it's constructor. It is true that DataInputStream does not override the available() method, but it's super class FilterInputStream does. The available() method of FilterInputStream calls the available() method of the underlying input stream. In my case the wrapped input stream is of type java.net.SocketInputStream, but unfortunately this class is not public and is not very well documented.
Thanks anyway for your concern.
Regards,
Stefan

Similar Messages

  • Bytes not read from DataInputStream

    I want to read a binary file and translate the data to ascii. In order to do so, I've decided to let one method take care of the opening and reading the data and this is where the problem is; no data is read from the binary file. When the for-loop is executed, the index is printed on the screen and since the number is increasing, it cannot be the for-loop that is malfunctioning. However, the data that should be read, should also be displayed, but that does not happen. Can someone tell me what is wrong with my code?
    Thanks
    Simon
    public void readFromBinary() throws FileNotFoundException,IOException
         //open stream
         FileInputStream fInputStream = new FileInputStream(inFile);
         int lengthInFile = fInputStream.available();
         inStream = new DataInputStream(fInputStream);
         byte[] values = new byte[lengthInFile];
         //read data
         for(int i=0;i<lengthInFile;i++)
    System.out.println("i = "+i);
         values[i] = inStream.readByte();
         String str = new String(values);
         System.out.println(str);
         System.out.println("readFromBinary: Data read, length is "+values.length);
         //close stream
         fInputStream.close();

    values[ i ] = inStream.readByte();You've only read one (more) of the bytes, the other
    values in the array are still zeros
    String str = new String(values);
    System.out.println(str);This doesn't make sense creating a string out of the
    array which just keeps adding one more byte every time
    thru the loop.
    Why not just read the thing as one operation?
    inStream.read(values);Actually meant:
    fInputStream.read(values);
    You shouldn't be using DataInputStream on a stream that wasn't created by a DataOutputStream. But then I don't know what this file is you're messing with.

  • Multiple reads from DataInputStream through Socket

    Ok I got a small prob, and well, here it is:
    I have a server and a client.
    The client needs to send a file to the server.
    I'm using Data(Input/Output)Stream.
    I use writeLong() and readLong(), to send the size and after that read the size of the file.
    And after that I send the file.
    But the file is always corrupted, but if I leave the size sending part out and enter the size hardcoded it works fine!
    Here's a small snippet from the server-code.
    // Read the filesize.
    long fileSize = in.readLong();
    // Receive and save the file.
    int bytesRead = 0;
    int bytesToRead = 1024;
    byte[] input = new byte[bytesToRead];
    while(bytesRead < fileSize) {
         int result = in.read(input,0,bytesToRead);
         if(result == -1) break;                              
         bytesRead += result;
         out.write(input,0,bytesToRead);
         System.out.println(bytesRead + "/" + fileSize);
    in.close();
    out.flush();
    out.close();Any help is very appriciated...
    Thnkx in advance...
    Robert.

    I'm assuming out is a file. I think you are writing too much. You want to write what was read in, not the full array. The default values of the byte array bytes is 0 (or since not being reset, the last value read). So say you read in a lot of bytes in one read call, then a few in the 2nd, and then more in the 3rd, you are writing some old data (from 1st read) in the 2nd write, which will corrupt the file. Somehow I doubt that it's always the case that withouth the readLong part that it doesn't work. Just a fluke thing that happens any particular time.
    // Read the filesize.
    long fileSize = in.readLong();
    // Receive and save the file.
    long bytesRead = 0;
    int bytesToRead = 1024;
    byte[] input = new byte[bytesToRead];
    while(bytesRead < fileSize) {
         int result = in.read(input,0,bytesToRead);
         if(result == -1) break;                              
         bytesRead += result;
         out.write(input,0,result);
         System.out.println(bytesRead + "/" + fileSize);
    in.close();
    out.flush();
    out.close();

  • J2ME: Can't read from input stream?

    I'm trying to create a simple message service between a server and J2ME client. But everytime I try to read from DataInputStream (dis) i get Exceptioons. How come? It works just fine to send messages to OutputStream.
    I've tried several different methods... This is my latest try (client). You'll find the server below.
    import java.io.*;
    import javax.microedition.io.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;
    public class clientMIDlet extends MIDlet implements CommandListener {
    private Command exitCommand;
    private Command sendCommand;
    private Command receiveCommand;
    private Command clearCommand;
    protected Display display; // The display for this MIDlet
    protected TextBox textBox;
    final int MAX_LENGTH = 2048;
    private ContentConnection connection = null;
    private OutputStream os = null;
    private DataInputStream dis = null;
    StringBuffer buffer = new StringBuffer("");
    public clientMIDlet() {
    // Max lenght of received messages
    display = Display.getDisplay(this);
    exitCommand = new Command("Exit", Command.EXIT, 1);
    sendCommand = new Command("Send", Command.SCREEN, 1);
    receiveCommand = new Command("Receive", Command.SCREEN, 1);
    clearCommand = new Command("Clear", Command.SCREEN, 1);
    private void sendMess (final String message) {
    String msg = message + "\n";
    try {
    os.write(msg.getBytes());
    os.flush();
    } catch (IOException e) {
    System.err.println("Error in sendMess while sending " + msg);
    private String getMess() throws IOException {
         int c;
         try {
         System.out.println("encoding: "+ connection.getEncoding());
         System.out.println("lenght: "+ connection.getLength());
         System.out.println("type: "+ connection.getType());
    System.out.println("Using buffer.. This row never prints..");
         try {
              for (int ccnt=0; ccnt < connection.getLength(); ccnt++) {
              c = dis.read();
              buffer.append((char)c);
    } finally {
              dis.close();
    } catch (IOException x) {
    System.out.println("Problems with data connection");
    return buffer.toString();
    * Start up the Hello MIDlet by creating the TextBox and associating
    * the exit command and listener.
    public void startApp() {
    // Start a socket to comminicate with the server.
    // Server variables.. Should be submited by the user
    String host = "192.168.1.20";
    String port = "7080";
         String serverName = "socket://" + host + ":" + port;
    // Connect to server in order to receive response string
    try {
         connection = (ContentConnection)
              Connector.open(serverName,Connector.READ);
    } catch (Exception e) {
    System.out.println("Failed to connect to server!!!");
    try {
         System.out.println("encoding: "+ connection.getEncoding());
         System.out.println("lenght: "+ connection.getLength());
         System.out.println("type: "+ connection.getType());
    dis = connection.openDataInputStream();
    } catch (Exception e) {
    System.out.println("Can not read from connection");
    textBox = new TextBox("Hello MIDlet", "Hello!", 50, TextField.ANY);
    textBox.addCommand(exitCommand);
    textBox.addCommand(receiveCommand);
    textBox.addCommand(sendCommand);
    textBox.addCommand(clearCommand);
    textBox.setCommandListener(this);
    display.setCurrent(textBox);
    * Pause is a no-op since there are no background activities or
    * record stores that need to be closed.
    public void pauseApp() {
    * Destroy must cleanup everything not handled by the garbage collector.
    * In this case there is nothing to cleanup.
    public void destroyApp(boolean unconditional) {
    * Respond to commands, including exit
    * On the exit command, cleanup and notify that the MIDlet has been destroyed.
    public void commandAction(Command c, Displayable s) {
    if (c == exitCommand) {
    destroyApp(false);
    notifyDestroyed();
    } else if (c == receiveCommand) {
    try {
    System.out.println(getMess());
    //textBox.setString(getMess().toString());
    } catch (Exception e) {
    System.err.println("Could not write message to display");
    } else if (c == sendCommand) {
    sendMess(textBox.getString());
    textBox.setString("Message sent");
    Server:
    import java.net.Socket;
    import java.net.ServerSocket;
    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.PrintWriter;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    class User {
         private Socket socket;
         private BufferedReader in = null;
         private PrintWriter out = null;
         public User(final Socket mySocket) {
              this.socket = mySocket;
              try {
                   in = new BufferedReader(
                   new InputStreamReader(
                        this.socket.getInputStream(), Server.CS));
                   out = new PrintWriter(
                   new OutputStreamWriter(
                        this.socket.getOutputStream(),Server.CS));
              } catch(IOException e) {
    System.out.println("Server could not create user sockets");
         public String get() {
              String response = null;
              try {
                   response = in.readLine();
              } catch(IOException e) {
    System.out.println("Server could not read response");}
              return response;
         public void put(final String response) {
              out.print(response);
    out.flush();
         public void finalize() {
              try {
                   in.close(); out.close(); socket.close();
              } catch (IOException e) {;}
    class ConnectionHandler implements Runnable {
         private final User[] users;
    private String chatString;
         public ConnectionHandler(final Socket socket_user1, final Socket socket_user2) {
              users = new User[] {new User(socket_user1), new User(socket_user2)};
              //:Send users their initial state:
         public void run() {
    boolean master = true;
    users[0].put("OK");
              users[1].put("wait");
    System.out.println("ConnectionHandler started.");
              while(true) {
    chatString = users[(master ? 0 : 1)].get();
    System.out.println("User" + (master ? 1 : 2) + ":" + chatString);
                   users[(master ? 1 : 0)].put(chatString);
                   master = !master;
    public class Server {
         public final static String CS = "ISO-8859-1";
    public static void main(String[] args) throws IOException {
              int port = 7070;
    if (args.length == 1) {
    port = Integer.parseInt(args[0]);
         System.out.println("Server started on port " + port + "...");
    final ServerSocket serverSocket = new ServerSocket(port);
              while(true) {
    final Runnable task = new ConnectionHandler(serverSocket.accept(),
    serverSocket.accept());
              final Thread thread = new Thread(task);
              thread.start();
    }

    You've got to be kidding me...
    I'm trying to create a simple message service between
    a server and J2ME client. But everytime I try to read
    from DataInputStream (dis) i get Exceptioons. How
    come? It works just fine to send messages to
    OutputStream.What exceptions get thrown? What line numbers do they get thrown from? Do they always get thrown, or only in certain situations? Put your code in [code ] blocks (http://forum.java.sun.com/faq.jsp#messageformat, for Christ's sake, how many times do people need told to do that... it should just be written write on top of the page that you type your posts in... oh wait... IT IS!)

  • Problem with ArrayLists and writing and reading from a .dat file (I think)

    I'm brand new to this forum, but I'm sure hoping someone can help me with a problem I'm having with ArrayLists. This program was originally created with an array of objects that were displayed on a GUI with jtextFields, then cycling thru them via jButtons: First, Next, Previous, Last. Now I need to add the ability to modify, delete and add records. Both iterations of this program needed to write to and read from a .dat file.
    It worked just like it was suppose to when I used just the array, but now I need to use a "dynamic array" that will grow or shrink as needed: i.e. an ArrayList.
    When I aded the ArrayList I had the ArrayList use toArray() to fill my original array so I could continue to use all the methods I'd created for using with my array. Now I'm getting a nullPointerException every time I try to run my program, which means somewhere I'm NOT filling my array ???? But, I'm writing just fine to my .dat file, which is confusing me to no end!
    It's a long program, and I apologize for the length, but here it is. There are also 2 class files, a parent and 1 child below Inventory6. This was written in NetBeans IDE 5.5.1.
    Thank you in advance for any help anyone can give me!
    LabyBC
    package my.Inventory6;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.DecimalFormat;
    import javax.swing.JOptionPane;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import java.io.*;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.lang.IllegalStateException;
    import java.util.NoSuchElementException;
    import java.util.ArrayList;
    import java.text.NumberFormat;
    // Class Inventory6
    public class Inventory6 extends javax.swing.JFrame {
    private static InventoryPlusColor[] inventory;
    private static ArrayList inList;
    // create a tool that insure the specified format for a double number, when displayed
    private DecimalFormat doubleFormat = new DecimalFormat( "0.00" );
    private DecimalFormat singleFormat = new DecimalFormat( "0");
    // the index within the array of products of the current displayed product
    private int currentProductIndex;
    /** Creates new form Inventory6 */
    public Inventory6() {
    initComponents();
    currentProductIndex = 0;
    } // end Inventory6()
    private static InventoryPlusColor[] getInventory() {
    ArrayList<InventoryPlusColor> inList = new ArrayList<InventoryPlusColor>();
    inList.add(new InventoryPlusColor(1, "Couch", 3, 1250.00, "Blue"));
    inList.add(new InventoryPlusColor(2, "Recliner", 10, 525.00, "Green"));
    inList.add(new InventoryPlusColor(3, "Chair", 6, 125.00, "Mahogany"));
    inList.add(new InventoryPlusColor(4, "Pedestal Table", 2, 4598.00, "Oak"));
    inList.add(new InventoryPlusColor(5, "Sleeper Sofa", 4, 850.00, "Yellow"));
    inList.add(new InventoryPlusColor(6, "Rocking Chair", 2, 459.00, "Tweed"));
    inList.add(new InventoryPlusColor(7, "Couch", 4, 990.00, "Red"));
    inList.add(new InventoryPlusColor(8, "Chair", 12, 54.00, "Pine"));
    inList.add(new InventoryPlusColor(9, "Ottoman", 3, 110.00, "Black"));
    inList.add(new InventoryPlusColor(10, "Chest of Drawers", 5, 598.00, "White"));
    for (int j = 0; j < inList.size(); j++)
    System.out.println(inList);
    InventoryPlusColor[] inventory = (InventoryPlusColor[]) inList.toArray
    (new InventoryPlusColor[inList.size()]);
    return inventory;
    } // end getInventory() method
    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
    jPanel1 = new javax.swing.JPanel();
    IDNumberLbl = new javax.swing.JLabel();
    IDNumberField = new javax.swing.JTextField();
    prodNameLbl = new javax.swing.JLabel();
    prodNameField = new javax.swing.JTextField();
    colorLbl = new javax.swing.JLabel();
    colorField = new javax.swing.JTextField();
    unitsInStockLbl = new javax.swing.JLabel();
    unitsInStockField = new javax.swing.JTextField();
    unitPriceLbl = new javax.swing.JLabel();
    unitPriceField = new javax.swing.JTextField();
    invenValueLbl = new javax.swing.JLabel();
    invenValueField = new javax.swing.JTextField();
    restockingFeeLbl = new javax.swing.JLabel();
    restockingFeeField = new javax.swing.JTextField();
    jbtFirst = new javax.swing.JButton();
    jbtNext = new javax.swing.JButton();
    jbtPrevious = new javax.swing.JButton();
    jbtLast = new javax.swing.JButton();
    jbtAdd = new javax.swing.JButton();
    jbtDelete = new javax.swing.JButton();
    jbtModify = new javax.swing.JButton();
    jbtSave = new javax.swing.JButton();
    jPanel2 = new javax.swing.JPanel();
    searchIDNumLbl = new javax.swing.JLabel();
    searchIDNumbField = new javax.swing.JTextField();
    jbtSearch = new javax.swing.JButton();
    searchResults = new javax.swing.JLabel();
    jbtExit = new javax.swing.JButton();
    jbtExitwoSave = new javax.swing.JButton();
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Inventory Program"));
    IDNumberLbl.setText("ID Number");
    IDNumberField.setEditable(false);
    prodNameLbl.setText("Product Name");
    prodNameField.setEditable(false);
    colorLbl.setText("Product Color");
    colorField.setEditable(false);
    colorField.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    colorFieldActionPerformed(evt);
    unitsInStockLbl.setText("Units In Stock");
    unitsInStockField.setEditable(false);
    unitPriceLbl.setText("Unit Price $");
    unitPriceField.setEditable(false);
    invenValueLbl.setText("Inventory Value $");
    invenValueField.setEditable(false);
    restockingFeeLbl.setText("5% Restocking Fee $");
    restockingFeeField.setEditable(false);
    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(unitPriceLbl)
    .addComponent(unitsInStockLbl)
    .addComponent(colorLbl)
    .addComponent(prodNameLbl)
    .addComponent(IDNumberLbl)
    .addComponent(restockingFeeLbl)
    .addComponent(invenValueLbl))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(IDNumberField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)
    .addComponent(prodNameField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)
    .addComponent(colorField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)
    .addComponent(unitsInStockField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)
    .addComponent(unitPriceField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)
    .addComponent(restockingFeeField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)
    .addComponent(invenValueField, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE))
    .addContainerGap())
    jPanel1Layout.setVerticalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(IDNumberLbl)
    .addComponent(IDNumberField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(prodNameLbl)
    .addComponent(prodNameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(colorField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(colorLbl))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(unitsInStockField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(unitsInStockLbl))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(unitPriceField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(unitPriceLbl))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(restockingFeeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(restockingFeeLbl))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE)
    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(invenValueField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(invenValueLbl))
    .addContainerGap())
    jbtFirst.setText("First");
    jbtFirst.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtFirstActionPerformed(evt);
    jbtNext.setText("Next");
    jbtNext.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtNextActionPerformed(evt);
    jbtPrevious.setText("Previous");
    jbtPrevious.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtPreviousActionPerformed(evt);
    jbtLast.setText("Last");
    jbtLast.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtLastActionPerformed(evt);
    jbtAdd.setText("Add");
    jbtAdd.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtAddActionPerformed(evt);
    jbtDelete.setText("Delete");
    jbtModify.setText("Modify");
    jbtModify.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtModifyActionPerformed(evt);
    jbtSave.setText("Save");
    jbtSave.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtSaveActionPerformed(evt);
    jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Search by:"));
    searchIDNumLbl.setText("Item Number:");
    jbtSearch.setText("Search");
    searchResults.setFont(new java.awt.Font("Tahoma", 1, 12));
    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
    jPanel2.setLayout(jPanel2Layout);
    jPanel2Layout.setHorizontalGroup(
    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(jPanel2Layout.createSequentialGroup()
    .addContainerGap()
    .addComponent(searchIDNumLbl)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(jPanel2Layout.createSequentialGroup()
    .addGap(259, 259, 259)
    .addComponent(searchResults, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(jbtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(searchIDNumbField, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    jPanel2Layout.setVerticalGroup(
    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(jPanel2Layout.createSequentialGroup()
    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(searchIDNumLbl)
    .addComponent(searchIDNumbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(jPanel2Layout.createSequentialGroup()
    .addGap(32, 32, 32)
    .addComponent(searchResults, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(jPanel2Layout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jbtSearch)))
    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    jbtExit.setText("Save and Exit");
    jbtExit.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtExitActionPerformed(evt);
    jbtExitwoSave.setText("Exit");
    jbtExitwoSave.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jbtExitwoSaveActionPerformed(evt);
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 248, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 44, Short.MAX_VALUE)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
    .addComponent(jbtExitwoSave, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addComponent(jbtExit)))
    .addGroup(layout.createSequentialGroup()
    .addComponent(jbtFirst)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jbtNext)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jbtPrevious)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jbtLast))
    .addGroup(layout.createSequentialGroup()
    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addGap(12, 12, 12)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(jbtAdd)
    .addComponent(jbtDelete)
    .addComponent(jbtModify)
    .addComponent(jbtSave))))
    .addContainerGap())
    layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jbtFirst, jbtLast, jbtNext, jbtPrevious});
    layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jbtAdd, jbtDelete, jbtModify, jbtSave});
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(21, 21, 21)
    .addComponent(jbtAdd)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jbtDelete)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jbtModify)
    .addGap(39, 39, 39)
    .addComponent(jbtSave))
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(jbtFirst)
    .addComponent(jbtNext)
    .addComponent(jbtPrevious)
    .addComponent(jbtLast))
    .addGap(15, 15, 15)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addGroup(layout.createSequentialGroup()
    .addComponent(jbtExit)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jbtExitwoSave)))
    .addContainerGap())
    pack();
    }// </editor-fold>
    private void jbtExitwoSaveActionPerformed(java.awt.event.ActionEvent evt) {                                             
    System.exit(0);
    private void jbtSaveActionPerformed(java.awt.event.ActionEvent evt) {                                       
    String prodNameMod, colorMod;
    double unitsInStockMod, unitPriceMod;
    int idNumMod;
    idNumMod = Integer.parseInt(IDNumberField.getText());
    prodNameMod = prodNameField.getText();
    unitsInStockMod = Double.parseDouble(unitsInStockField.getText());
    unitPriceMod = Double.parseDouble(unitPriceField.getText());
    colorMod = colorField.getText();
    if(currentProductIndex == inventory.length) {
    inList.add(new InventoryPlusColor(idNumMod, prodNameMod,
    unitsInStockMod, unitPriceMod, colorMod));
    InventoryPlusColor[] inventory = (InventoryPlusColor[]) inList.toArray
    (new InventoryPlusColor[inList.size()]);
    } else {
    inventory[currentProductIndex].setIDNumber(idNumMod);
    inventory[currentProductIndex].setProdName(prodNameMod);
    inventory[currentProductIndex].setUnitsInStock(unitsInStockMod);
    inventory[currentProductIndex].setUnitPrice(unitPriceMod);
    inventory[currentProductIndex].setColor(colorMod);
    displayProduct(inventory[currentProductIndex]);
    private static void writeInventory(InventoryPlusColor i,
    DataOutputStream out) {
    try {
    out.writeInt(i.getIDNumber());
    out.writeUTF(i.getProdName());
    out.writeDouble(i.getUnitsInStock());
    out.writeDouble(i.getUnitPrice());
    out.writeUTF(i.getColor());
    } catch (IOException e) {
    JOptionPane.showMessageDialog(null, "I/O Exception writing data",
    "", JOptionPane.ERROR_MESSAGE);
    System.exit(0);
    } //end writeInventory()
    private static DataOutputStream openOutputStream(String name) {
    DataOutputStream out = null;
    try {
    File file = new File(name);
    out =
    new DataOutputStream(
    new BufferedOutputStream(
    new FileOutputStream(file)));
    } catch (IOException e) {
    JOptionPane.showMessageDialog(null, "I/O Error", "", JOptionPane.ERROR_MESSAGE);
    System.exit(0);
    return out;
    } // end openOutputStream()
    private static void closeFile(DataOutputStream out) {
    try {
    out.close();
    } catch (IOException e) {
    JOptionPane.showMessageDialog(null, "I/O Exception closing file",
    "", JOptionPane.ERROR_MESSAGE);
    System.exit(0);
    } // end closeFile()
    private static DataInputStream getStream(String name) {
    DataInputStream in = null;
    try {
    File file = new File(name);
    in = new DataInputStream(
    new BufferedInputStream(
    new FileInputStream(file)));
    } catch (FileNotFoundException e) {
    JOptionPane.showMessageDialog(null, "The file doesn't exist",
    "", JOptionPane.ERROR_MESSAGE);
    System.exit(0);
    } catch (IOException e) {
    JOptionPane.showMessageDialog(null, "I/O Error creating file",
    "", JOptionPane.ERROR_MESSAGE);
    System.exit(0);
    return in;
    private static void closeInputFile(DataInputStream in) {
    try {
    in.close();
    } catch (IOException e) {
    JOptionPane.showMessageDialog(null, "I/O Exception closing file",
    "", JOptionPane.ERROR_MESSAGE);
    System.exit(0);
    } // end closeInputFile()
    private double entireInventory() {
    // a temporary double variable that the method will return ...
    // after each product's inventory is added to it
    double entireInventory = 0;
    // loop to control number of products
    for (int index = 0; index < inventory.length; index++) {
    // add each inventory to the entire inventory
    entireInventory += inventory[index].setInventoryValue();
    } // end loop to control number of products
    return entireInventory;
    } // end method entireInventory
    private void jbtLastActionPerformed(java.awt.event.ActionEvent evt) {                                       
    currentProductIndex = inventory.length-1; // move to the last product
    // display the information for the last product
    displayProduct(inventory[currentProductIndex]);
    private void jbtPreviousActionPerformed(java.awt.event.ActionEvent evt) {                                           
    if (currentProductIndex != 0) // it's not the first product displayed
    currentProductIndex -- ; // move to the previous product (decrement the current index)
    } else // the first product is displayed
    currentProductIndex = inventory.length-1; // move to the last product
    // after the current product index is set, display the information for that product
    displayProduct(inventory[currentProductIndex]);
    private void jbtNextActionPerformed(java.awt.event.ActionEvent evt) {                                       
    if (currentProductIndex != inventory.length-1) // it's not the last product displayed
    currentProductIndex ++ ; // move to the next product (increment the current index)
    } else // the last product is displayed
    currentProductIndex = 0; // move to the first product
    // after the current product index is set, display the information for that product
    displayProduct(inventory[currentProductIndex]);
    private void jbtFirstActionPerformed(java.awt.event.ActionEvent evt) {                                        
    currentProductIndex = 0;
    // display the information for the first product
    displayProduct(inventory[currentProductIndex]);
    private void colorFieldActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
    private void jbtModifyActionPerformed(java.awt.event.ActionEvent evt) {                                         
    prodNameField.setEditable(true);
    prodNameField.setFocusable(true);
    unitsInStockField.setEditable(true);
    unitPriceField.setEditable(true);
    private void jbtAddActionPerformed(java.awt.event.ActionEvent evt) {                                      
    IDNumberField.setText("");
    IDNumberField.setEditable(true);
    prodNameField.setText("");
    prodNameField.setEditable(true);
    colorField.setText("");
    colorField.setEditable(true);
    unitsInStockField.setText("");
    unitsInStockField.setEditable(true);
    unitPriceField.setText("");
    unitPriceField.setEditable(true);
    restockingFeeField.setText("");
    invenValueField.setText("");
    currentProductIndex = inventory.length;
    private void jbtExitActionPerformed(java.awt.event.ActionEvent evt) {                                       
    DataOutputStream out = openOutputStream("inventory.dat");
    for (InventoryPlusColor i : inventory)
    writeInventory(i, out);
    closeFile(out);
    System.exit(0);
    private static InventoryPlusColor readProduct(DataInputStream in) {
    int idNum = 0;
    String prodName = "";
    double inStock = 0.0;
    double pric

    BalusC -- The line that gives me my NullPointerException is when I call the "DisplayProduct()" method. Its a dumb question, but with NetBeans how do I find out which reference could be null? I'm not very familiar with how NetBeans works with finding out how to debug. Any help you can give me would be greatly appreciated.The IDE is com-plete-ly irrelevant. It's all about the source code.
    Do you understand anyway when and why a NullPointerException is been thrown? It is a subclass of RuntimeException and those kind of exceptions are very trival and generally indicate an design/logic/thinking fault in your code.
    SomeObject someObject = null; // The someObject reference is null.
    someObject.doSomething(); // Invoking a reference which is null would throw NPE.

  • Reading from a socket that requires an EOF.

    I'm trying to send a request and get a response from a socket.
    The server only seems to send the response once it gets an EOF. The only way I can seem to get an EOF is to close my output stream. However, when I close my output stream before reading from the input stream I get a "java.net.SocketException: Socket closed" exception.
    Is there a way to send an EOF signal in the output stream? Am I doing something wrong?
            Socket sock = new Socket(this.getHost(), this.getPort());
            DataOutputStream os = new DataOutputStream(sock.getOutputStream());       
            DataInputStream is = new DataInputStream(sock.getInputStream());
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String responseString = new String();
            if (sock != null && os != null && is != null) {
                os.writeBytes(request);
                String responseLine;
                while ((responseLine = reader.readLine()) != null) {
                    responseString += responseLine;
            } //endif
            os.close();
            is.close();
            sock.close();

    Thanks for the reply. Is there no way around that? I don't have direct control over the server.
    I don't understand why I can't close the socket's input stream and still read from its output stream.
    Edited by: philgmo on Feb 18, 2008 3:20 PM

  • Read from one file ... and write

    I had written below code to read from a file
    which has input in below format...
    $ filla
    % dillla
    I wrote a code to read from the below file and I want to write into another file...
    in another format...like
    filla, $
    dilla, %
    I wrote as below... but my code doesn't work....i commented most of the code becoz I doubt ....
    I read the file...line by line...
    each line has two words one is special characters($ or %) and the other is some name... separated by space..
    I stored both in different arrays...and thought to write them in output file...
    import java.io.*;
    public class data
           public static void main(String args[])
                int kMaxLines = 60000;            
                  String[][] valuePairs = new String[2][kMaxLines];
                  String symbol [] = new String[kMaxLines];
               String name [] = new String[kMaxLines];
               int k = 0;
                       try            
                      FileInputStream fstream = new FileInputStream("c:/inputs.txt");
                      DataInputStream datastream = new DataInputStream(fstream);
                      BufferedReader br = new BufferedReader(new InputStreamReader(datastream));
                      //FileWriter output = new FileWriter("c:/output.txt");
                 //BufferedWriter bw = new BufferedWriter(output);
                      String names; 
                      String strLine;
                      int line = 0;
                      while ((strLine = br.readLine()) != null)
                           String temp_strs[] = strLine.split(" ");
                          for (int j = 0; j < 2; j++)
                          valuePairs[j][line] = temp_strs[j];
                         //System.out.println(temp_strs[0] + " " + temp_strs[1]);
                          symbol[k]= temp_strs[0];  
                          name[k]=temp_strs[1];
                          line++;
                          k++;
                      for (k=0; k < kMaxLines; k ++)
                      System.out.println(symbol[k]+ "" + name[k]); // when I print it is giving null value...
                      } // so what I do to get those values into global array...
                          datastream.close();
                // to write to file
                   //String names_str;
                        //bw.write("@relation train");
                  //for(k=0; k<kMaxLines; k++)
                    //  names_str = names+""+name[k];
                   //bw.write("@attribute names" + " {"+names_str+"}");
                   //bw.write("@attribute class {+,-}");
                   //bw.write("@data"+"\n");
                    // for (k=0;k<kMaxLines; k++)
                   //bw.write("name[k]+","+symbol[k]");
                       catch (Exception e)
                      //file not found exception...
                            e.printStackTrace();
     

    Why the multiple arrays?
    I'd just read it into List<String[]>... an extensible collection of "the fields on each line"... then you just write them out as required.
        second-field + comma + first-field.
    I suggest your next move should be to take a backup copy of your current class then rip-all that commented-out code out of it, and reformat it properly... starting from a clean(er) slate... then try swapping over to a List<String[]> instead of that cumbersome String[][] matrix.
    Try that... if you get stuckeroonied then don't be afraid to ask again.
    Cheers. Keith.

  • Divide file contents and read from threads

    I am reading a file which contains doubles... I can do this with 1 thread.
    Now I want to use 2 threads and make each thread read half of that file.. How do I make file to half .. If I take the length and divide by two wont it destort the doubles?
    public class SingleThread extends Thread
         /*** Constructor ***/
         public SingleThread(){}
         /*** Run the thread ***/
         public void run()
              try{
              FileInputStream fis = new FileInputStream("File1.bin");
              DataInputStream dis = new DataInputStream(fis);
              int size = fis.available();
              System.out.println("Size of File1 "+size);
              /*Create an array that can store 100,000 numbers*/
              double num1[] = new double[100001];
              /*Get random number*/
              for (int count = 0; count <= 100000; count ++)
                   num1[count] = dis.readDouble();
                   System.out.println(count); //Count
                   System.out.println(num1[count]); //Prints doubles that are read from file.
         }//try
              catch(Exception e){System.out.println("Exception: "+e.getMessage());}
         /******************** Main Program ********************************************************/
         public static void main(String[] args)
              new SingleThread().start();
    }

    I dont know....my professor wants us to test multithreading response times.. :(

  • IPod Error Message: "The disk could not be read from or written to."

    Hello!
    I was syncing my sister's video iPod (30GB) and this error message pops up "Attempting to copy to the disk. "SARAH'S IPO" failed. The disk could not be read from or written to."
    I have restored it three times already, but once it starts putting the music and files back onto the iPod it pops up with that error message. I have updated to the latest version of iTunes and iPod software available. My OS is Windows XP.
    Is this something serious? Will I be able to fix it myself or will I need to send it in to be fixed by Apple? Will that be expensive? We didn’t get the Apple replacement plan. D=
    Any help would be greatly appreciated. Thank you in advance. ^_^
    PowerBook G4   Mac OS X (10.4.3)   15" PowerBook 1.5 GHz PowerPC G4, 1.5GB RAM - Windows XP with iPod 5 Generation

    Okay I went thru that entire list and here's what I got...
    (1) My OS is XP and is running fine.
    (2) I've updated my windows
    (3) I don't know of any software that might be interfering.
    (4) There are no damaged files.
    (5) My Windows hard-drive is not damaged and I've tried restoring my iPod's disk thru iTunes but it still doesn't work.
    (6) I don't have an iPod photo and I can't find the folder to delete the cache if if I did.
    (7) The USB cord is firmly connected into my USB port and my iPod
    (8) My music is on my external hard-drive so I need to keep 3rd-party hardware connected
    (9) I will try another USB cord to see if that works.
    Is there anything else that I can do? Can Apple fix this?
    Please let me know.

  • Open and read from text file into a text box for Windows Store

    I wish to open and read from a text file into a text box in C# for the Windows Store using VS Express 2012 for Windows 8.
    Can anyone point me to sample code and tutorials specifically for Windows Store using C#.
    Is it possible to add a Text file in Windows Store. This option only seems to be available in Visual C#.
    Thanks
    Wendel

    This is a simple sample for Read/Load Text file from IsolateStorage and Read file from InstalledLocation (this folder only can be read)
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Windows.Storage;
    using System.IO;
    namespace TextFileDemo
    public class TextFileHelper
    async public static Task<bool> SaveTextFileToIsolateStorageAsync(string filename, string data)
    byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes(data);
    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
    var file = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
    try
    using (var s = await file.OpenStreamForWriteAsync())
    s.Write(fileBytes, 0, fileBytes.Length);
    return true;
    catch
    return false;
    async public static Task<string> LoadTextFileFormIsolateStorageAsync(string filename)
    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
    string returnvalue = string.Empty;
    try
    var file = await local.OpenStreamForReadAsync(filename);
    using (StreamReader streamReader = new StreamReader(file))
    returnvalue = streamReader.ReadToEnd();
    catch (Exception ex)
    // do somthing when exception
    return returnvalue;
    async public static Task<string> LoadTextFileFormInstalledLocationAsync(string filename)
    StorageFolder local = Windows.ApplicationModel.Package.Current.InstalledLocation;
    string returnvalue = string.Empty;
    try
    var file = await local.OpenStreamForReadAsync(filename);
    using (StreamReader streamReader = new StreamReader(file))
    returnvalue = streamReader.ReadToEnd();
    catch (Exception ex)
    // do somthing when exception
    return returnvalue;
    show how to use it as below
    async private void Button_Click(object sender, RoutedEventArgs e)
    string txt =await TextFileHelper.LoadTextFileFormInstalledLocationAsync("TextFile1.txt");
    Debug.WriteLine(txt);
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

  • Disk could not be read from or written to

    I'm a new ipod user. I can get songs on my ipod. But when I go to get photos I get an error message saying, "ipod cannot be updated. The disk could not be read from or written to."
    In itunes I can see the ipod. When I go to look at My Computer, it does not show the ipod as a disk drive.
    Thanks!

    I'm a new ipod user. I can get songs on my ipod.
    But when I go to get photos I get an error message
    saying, "ipod cannot be updated. The disk could not
    be read from or written to."
    In itunes I can see the ipod. When I go to look at My
    Computer, it does not show the ipod as a disk drive.
    Thanks!
    It's so simple, dont worry. Just connect your ipod to the computer. iTunes must open. In iTunes clcik on the small ipod icon which appears at the right bottom of the itunes window. click on that icon and another window with some options will be opened. Click on "enable disk use" and make this selection marked and click ok.
    it'll certainly help!

  • When I update my nano ipod I get an error message "User ipod cannot be updated.  The disk couldnot be read from or written to."   How can I overcome this error message.

    In the iTunes window, when I update my nano ipod, I get an error message "User ipod cannot be updated.  The disk could not be read from or written to."   How can I overcome this error message.

    Hello there dilip77707,
    It sounds like you are getting this error message that your iPod cannot be read from or written to when you are trying to update your iPod Nano. I recommend the troubleshooting from the following article to help you get that resolved. Its pretty straight forward, just start at the top and work your way down as needed:
     'Disk cannot be read from or written to' when syncing iPod or 'Firmware update failure' error when updating or restoring iPod
    Thank you for using Apple Support Communities.
    All the very best,
    Sterling

  • Disk could not be read from

    Suddenly my Ipod will not sync. The error message says "...disk could not be read from or written to..." We tried the HOLD TOGGELING. But that didn't work. It won't let me restore the Ipod either because it says other programs are currently in use.
    Suggestions would be greatful!

    Welcome to the discussions,
    if the reset did not work, did you try to put it into disk mode? http://support.apple.com/kb/HT1363

  • Can't sync iPod - Error Message: "disc cannot be read from or written to"

    My ipod had been working fine until recently when every time I try and sync it I get the following error message:
    "Attempting to copy to the disk "iPod" failed. The disk could not be read from or written to"
    I have tried all suggestions in Apple's support article for this issue but nothing works. Does anyone else have this problem or know how to solve it?
    Thanks a lot.
    H
    Macbook Pro   Mac OS X (10.4.10)  
    Macbook Pro   Mac OS X (10.4.10)  

    Hi all,
    I am sorry to report that I too have this same disc error problem when syncing my iPod to my iTunes library. I take no comfort in knowing that I am one of many that have this same error. I checked on the iPod lounge forum and I just couldn't count the number of users that had the same problem. There are just so many!
    I too have tried "5 r's" and I have also tried using a few "s" words and others...lol.
    It seems like there is no "fix" for this problem but I will say this: If there is no solution, then I will no longer be buying iPods. This is my third iPod that I have purchased. Which makes my Apple investment near the thousand dollar mark. That is way too much money spent to not have a functioning music player. I will be switching to another player to see if the grass is greener on the other side.
    I have been most dissappointed with this error and I will not be "recycling" this iPod for ten percent off of my next iPod purchase.

  • Error Message: "Disk could not be read from or written to".

    New 5th Gen. was downloading CD's I loaded into iTunes just fine; when uploading tunes into iPod yesterday this error message appeared: "Attempting to copy to the disk (iPod name) failed. Disk could not be read from or written to". Restored iPod with 1/10/06 update of iPod Install; using iTunes 6.0.2; operating system 10.3.9. Frustrated. iPod useless at this point. Anyone found a fix to this vexing problem?
    Thanks,
    John

    Thanks Jeff. Only thing that rings true is updating OS; when I tried to downoad 10.4 message said I 'could not on this computer'. Since I purchased and installed 10.3 a year ago I don't understand. Also, iPod was downloading perfectly until two days ago when -36 appeared. Bummer. I am not a techie, Apple tech support does not have a clue, and iPod is useless. Ideas?

Maybe you are looking for

  • Forms Flickering in Forms 9i

    Forms Flicker Forms 9.0.2.11.0 Our application currently runs forms 6i using Jinitiator. We are in the process of upgrading our environment to 9i, database and forms. Because of the problems with downloading jinitiator to our user base we are looking

  • Chart Axis Order

    Hi All, I have a report which has a chart, the x axis has quarter details...but I need to put them in ascending order of quarters....like q1 2008 q2 2008 q3 2008 q4 2008 q1 2009.....etc I am not able to do this change using the existing propoerties?

  • Not able to communicate with My Nomad

    I recently put a new hard dri've on my daughter's computer and upgraded from win98 to 2000. I have installed the driver (nomad2drivers.exe) and (Drv_nm2.exe) from Creative's website. I also installed Creative MediaSource. When I connect my daughter's

  • Problems while using Adobe Interactive Forms

    Hi Experts, When I execute my adobe interactive forms application that uses a BAPI to access backend I am facing the following problem: When I enter valid values and click on submit all the browser windows close without any warning or error message.

  • Wrong ELF data format: ELFDATA2LSB

    Dear, I get the following error when executing a java program. Does somebody know what does mean "wrong ELF data format"? thanks for you help Internal exception: java.lang.UnsatisfiedLinkError: /export/home/mComm/lib/libtibrvj.so: ld.so.1: /bin/../ja